1

我有一个表,其中包含和tbl之类的列。是整数(不是 id 字段,只是 int 字段)。我需要在这个表中插入 4 行,这些行是:col1col2
col2

John 1
John 2
John 3
Sam  4

在单个查询中执行此操作的最佳方法是什么?谢谢!:)

更新:如果我有 100 个值怎么办?:) 我要说的是所有值都是相同的,从 1 到 n,但其中一个是不同的。

4

3 回答 3

2

您可以只使用一个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 ;
于 2013-03-01T08:47:35.193 回答
1
INSERT INTO table (col1, col2) VALUES
('John', 1),
('John', 2),
('John', 3),
('Sam', 4)
于 2013-03-01T08:48:04.500 回答
1

如果需要插入大量记录(例如 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 ;
于 2013-03-01T09:09:39.373 回答