3

我有一个现有的表,我想用它做以下等效的事情:

insert into the_table set col0=1, col1=0, col2=0;
insert into the_table set col0=2, col1=0, col2=0;
insert into the_table set col0=3, col1=0, col2=0;
...
...
insert into the_table set col0=255, col1=0, col2=0;

因为这是我将不时以交互方式进行的事情,所以我想知道如何将其简化为单个语句并经常通过控制台将其推入。

编辑:

在控制台输入以下内容是不现实的:

insert into the_table (col1, col2, col3) values (0,0,0),(1,0,0)....(255,0,0);

谢谢。

4

4 回答 4

3
insert into the_table (col0, col1, col2) values
(1, 0, 0),
(2, 0, 0),
(3, 0, 0)

我不能代表 MySQL,但 SQL Server 将其限制为每条语句 1000 行。

于 2012-04-16T18:58:10.707 回答
3

有点hacky,从技术上讲,这将是两个查询:

SET @i:=0;
INSERT INTO the_table (col0,col1,col2)
SELECT @i:=@i+1,0,0 FROM SomeTable LIMIT 255;

SomeTable数据库中至少有 255 行的表在哪里。

于 2012-04-16T20:49:46.973 回答
2
INSERT INTO the_table
    (col0, col1, col2)
    VALUES
    (1, 0, 0),
    (2, 0, 0),
    (3, 0, 0),
    ...
    (255, 0, 0)
于 2012-04-16T18:58:23.627 回答
2

您还可以将这些值放入另一个表中,并使用INSERT..SELECT进行操作:

INSERT INTO the_table (col0, col1, col2)
SELECT col0, col1, col2 FROM the_table_defaults
于 2012-04-16T19:13:17.520 回答