我有一个表,其中包含和tbl
之类的列。是整数(不是 id 字段,只是 int 字段)。我需要在这个表中插入 4 行,这些行是:col1
col2
col2
John 1
John 2
John 3
Sam 4
在单个查询中执行此操作的最佳方法是什么?谢谢!:)
更新:如果我有 100 个值怎么办?:) 我要说的是所有值都是相同的,从 1 到 n,但其中一个是不同的。
您可以只使用一个INSERT
语句来做到这一点:
使用 VALUES 语法的 INSERT 语句可以插入多行。为此,请包含多个列值列表,每个列表都包含在括号中并用逗号分隔。
像这样:
INSERT INTO tablename(col1, col2)
VALUES ('John', 1),
('John', 2),
('John', 3),
('Sam', 4);
或者:
INSERT INTO Tablename(col1, col2)
SELECT 'John' AS col1, 1 AS col2
UNION ALL
SELECT 'John' , 2
UNION ALL
SELECT 'John' , 3
UNION ALL
SELECT 'Sam' , 4 ;
INSERT INTO table (col1, col2) VALUES
('John', 1),
('John', 2),
('John', 3),
('Sam', 4)
如果需要插入大量记录(例如 100 条),可以在存储过程中使用循环。这是一个基本示例:
DELIMITER $$
DROP PROCEDURE IF EXISTS LoopProc$$
CREATE PROCEDURE LoopProc()
BEGIN
DECLARE x INT;
SET x = 1;
WHILE x <= 100 DO
INSERT INTO table (col1, col2) VALUES ('John', x);
SET x = x + 1;
END WHILE;
SET x = x + 1;
INSERT INTO table (col1, col2) VALUES ('Sam', x);
END$$
DELIMITER ;