我需要運行此查詢100次才能將數據輸入到我的MySQL數據庫中。 ID自動遞增。不關心遞增表名字段。只需要填寫數據庫。無需複製/粘貼100次,最好的方法是什麼?多次運行SQL查詢
"INSERT INTO `tables`(id, name, assigned_seating, open_seating, position) VALUES ('', 'Table 1', 0, 1, '')";
我需要運行此查詢100次才能將數據輸入到我的MySQL數據庫中。 ID自動遞增。不關心遞增表名字段。只需要填寫數據庫。無需複製/粘貼100次,最好的方法是什麼?多次運行SQL查詢
"INSERT INTO `tables`(id, name, assigned_seating, open_seating, position) VALUES ('', 'Table 1', 0, 1, '')";
如果有人認爲這在未來,這是最好的答案
public function addbatch()
{
for ($i = 1; $i <= 100; $i++)
{
$tableName = "Table " . $i;
$q = "INSERT INTO `tables`(id, name, cap, assigned_seating, open_seating, position) VALUES ('', '".$tableName."', 10, 0, 1, '')";
$this->db->query($q);
}
}
通話功能一次。確保在完成時刪除!
你可以做批量插入:
insert into Table
(column1, column2)
VALUES
('value 1', 'value2') ,
('value3', 'value4')
,只要你想,只要你用逗號將它們分開你可以做盡可能多的行。
$vals='';
for ($i = 0; $i < 100; $i++) {
$vals.="('Table 1', 0, 1, ''),";
}
$vals=rtrim($vals,',');
mysqli_query($dbh, 'INSERT INTO `tables`(name, assigned_seating, open_seating, position) VALUES ' . $vals);
假設ID是自動遞增所以才離開它的查詢
試試這個:
DELIMITER $$
DROP PROCEDURE IF EXISTS `multipleInsert` $$
CREATE PROCEDURE `multipleInsert`(in n int)
BEGIN
DECLARE cont int default 0;
WHILE cont < n DO
INSERT INTO `tables`(id, name, assigned_seating, open_seating, position) VALUES ('', 'Table 1', 0, 1, '');
set cont = cont + 1;
end while;
END $$
DELIMITER ;
呼叫過程:
call multipleInsert(100);
所有你需要的是現有的至少有100行的表格。我將使用information_schema.columns
爲例:
INSERT INTO `tables`(id, name, assigned_seating, open_seating, position)
SELECT null, 'Table 1', 0, 1, ''
FROM information_schema.columns
LIMIT 100;
使用for循環? – pocketg99
可以在一個查詢中完成,不需要100個,給我一個莫寫 – nogad
你可以在8個查詢總數中做到這一點,如果你跟着7'INSERT .... SELECT's ...雖然技術上你結束然後是128行。 – Uueerdo