我有大量的行我想複製,但我需要更改一個字段。MySQL:如何複製行,但改變幾個字段?
我可以選擇,我要複製的行:
select * from Table where Event_ID = "120"
現在我想複製所有的行,同時設置Event_ID
到155
創建新行。我怎樣才能做到這一點?
我有大量的行我想複製,但我需要更改一個字段。MySQL:如何複製行,但改變幾個字段?
我可以選擇,我要複製的行:
select * from Table where Event_ID = "120"
現在我想複製所有的行,同時設置Event_ID
到155
創建新行。我怎樣才能做到這一點?
INSERT INTO Table
(Event_ID
, col2
...
)
SELECT "155"
, col2
...
FROM Table WHERE Event_ID = "120"
這裏,COL2,......代表其餘的列(那些比 EVENT_ID 等)在表格中。
嘿怎麼樣複製各個領域,改變其中的一個相同的值+別的東西。
INSERT INTO Table (foo, bar, Event_ID)
SELECT foo, bar, Event_ID+"155"
FROM Table
WHERE Event_ID = "120"
??????????
如果你的表中有許多列並且不想輸出每一列,你可以使用臨時表來完成它,比如;
SELECT *
INTO #Temp
FROM Table WHERE Event_ID = "120"
GO
UPDATE #TEMP
SET Column = "Changed"
GO
INSERT INTO Table
SELECT *
FROM #Temp
注:假設你的表中沒有主鍵 – kommradHomer 2014-07-25 07:33:11
這就是你有很多領域在你的桌子和不想打字的所有領域得到了手指抽筋,只需鍵入所需的人:)
如何複製解決方案一些行到相同的表,具有不同價值觀的某些字段:
您的代碼:
CREATE table temporary_table AS SELECT * FROM original_table WHERE Event_ID="155";
UPDATE temporary_table SET Event_ID="120";
UPDATE temporary_table SET ID=NULL
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
一般場景代碼:
CREATE table temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
UPDATE temporary_table SET <auto_inc_field>=NULL;
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
簡體/冷凝代碼:
CREATE TEMPORARY TABLE temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <auto_inc_field>=NULL, <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
INSERT INTO original_table SELECT * FROM temporary_table;
作爲創建臨時表的使用TEMPORARY
關鍵字當會話結束(如@ ar34z建議的)將被自動刪除。
只要EVENT_ID是整數,這樣做:
INSERT INTO Table (foo, bar, Event_ID)
SELECT foo, bar, (Event_ID + 155)
FROM Table
WHERE Event_ID = "120"
有沒有辦法做到這一點,而不必指定列名? – Andrew 2010-05-06 18:00:24
不是我所知道的。當然,如果你的表有1000列或其他東西,而你不想全部輸入,那麼你可以編寫一個SQL語句來構建你的SQL語句:)。你會這樣做的方式是使用information_schema來獲取表的列名。但是這真是太過分了,我只是輸入列名。 – dcp 2010-05-06 18:21:10
正是我需要的例子,謝謝。我不確定你是否可以這樣做。 – salonMonsters 2010-11-29 20:35:05