我需要运行此查询100次才能将数据输入我的MySQL数据库。 ID自动递增。不关心增加表名列。只需填写数据库。无需复制/粘贴100次,最好的方法是什么?
"INSERT INTO `tables`(id, name, assigned_seating, open_seating, position) VALUES ('', 'Table 1', 0, 1, '')";
答案 0 :(得分:0)
您可以进行批量插入:
insert into Table
(column1, column2)
VALUES
('value 1', 'value2') ,
('value3', 'value4')
只要您用逗号分隔它们,就可以根据需要执行任意数量的行。
答案 1 :(得分:0)
$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是自动递增的,所以只是将其从查询中删除
答案 2 :(得分:0)
试试这个:
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);
答案 3 :(得分:0)
您只需要一个至少有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;
答案 4 :(得分:0)
如果有人在将来看到这一点,这是最好的答案
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);
}
}
呼叫功能一次。确保完成后删除!