2012-04-16 43 views
3

我有一個現有的表,與我願做以下等效:如何插入行的序列中的MySQL數據庫

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

感謝。

回答

2

有點哈克,並在技術上這將是兩個查詢:

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

其中SomeTable是數據庫中至少有255行的任何表。

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

我不能說MySQL,但SQL Server將此限制爲每條語句1000行。

2
INSERT INTO the_table 
    (col0, col1, col2) 
    VALUES 
    (1, 0, 0), 
    (2, 0, 0), 
    (3, 0, 0), 
    ... 
    (255, 0, 0) 
2

你也可以把這些值轉換成另一個表,並做到這一點與INSERT..SELECT

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

OP:我的表是一個臨時的,從以前的查詢創建的,所以我沒有默認值可以重新使用。 – Sniggerfardimungus 2012-04-16 20:38:18

相關問題