在现有表中插入13000行

时间:2014-05-20 17:41:15

标签: mysql loops insert

我想在我的表中插入13k行。 我的表格结构如下

ID | Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |

ID是主要(自动增量)列。

我需要Col1反映数字1到13000。

其余列将保持空白。

我确信之前已经提出过这个问题,但我真的很困惑如何有效地做到这一点。 感谢

3 个答案:

答案 0 :(得分:3)

http://naspinski.net/post/Running-a-For-Loop-in-MS-SQL.aspx

按照此处发布的示例操作。您的While (@count < 40)将为13000,Set @count = 0将为1,而insert into some_table ([columnA], [column]) Values ('val1', 'val2')只有[columnA]@count而不是val1。下面的修改示例应该足够了。

SQL命令:

DECLARE @count INT   
SET @count = 1   
WHILE (@count < 13001)   

BEGIN   
  INSERT INTO some_table ([Col1]) VALUES (@count)   
  SET @count = (@count + 1)   
END  

MYSQL命令:

BEGIN  
  DECLARE @count INT;  
  SET @count = 1;  

  WHILE (@count < 13001)
    INSERT INTO 'some_table' ('col1') VALUES (@count);  
    SET @count = (@count + 1);  
  END WHILE;  
END;  

答案 1 :(得分:1)

将数据加载到MySQL的最有效方法是从本地分隔文件加载数据。 MySQL有load local infile命令执行此操作:

LOAD DATA INFILE '/tmp/data.csv' INTO TABLE mytable
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n' (Col1);

您的输入文件只是Col1值的列表,每行一个:

8377
3888
3244
...

答案 2 :(得分:0)

您需要指定信息来源。

每个平台都有自己的方法。

Microsoft以其集成服务为例。但如果它是简单的数据,那么你可以创建一个正则表达式替换来将数据封装到插入表中的一些选择查询中。

但我需要了解更多有关哪个数据库和信息来源的信息,以便为您提供帮助。