【问题标题】:How do I insert a sequence of rows in a MySQL database如何在 MySQL 数据库中插入一系列行
【发布时间】:2012-04-16 18:56:15
【问题描述】:

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

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);

谢谢。

【问题讨论】:

    标签: mysql sql insert sequence


    【解决方案1】:

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

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

    其中SomeTable 是数据库中至少有 255 行的任何表。

    【讨论】:

      【解决方案2】:
      insert into the_table (col0, col1, col2) values
      (1, 0, 0),
      (2, 0, 0),
      (3, 0, 0)
      

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

      【讨论】:

        【解决方案3】:
        INSERT INTO the_table
            (col0, col1, col2)
            VALUES
            (1, 0, 0),
            (2, 0, 0),
            (3, 0, 0),
            ...
            (255, 0, 0)
        

        【讨论】:

          【解决方案4】:

          您也可以将这些值放入另一个表中,并使用INSERT..SELECT

          INSERT INTO the_table (col0, col1, col2)
          SELECT col0, col1, col2 FROM the_table_defaults
          

          【讨论】:

          • OP:我的表是临时的,是根据之前的查询创建的,所以我没有默认的回退。
          猜你喜欢
          • 2015-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-11
          • 2012-11-16
          • 2015-04-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多