如何插入到另一個表中除特殊領域如何將數據從一個表複製到另一個「除」一個場
如
表A
ID(auto_inc) CODE NAME
1 001 TEST1
2 002 TEST2
我想插入代碼和NAME到另一個表,但是除了ID之外,因爲它是自動增量的
注意:我不想使用「插入表B中的SELECT CODE,NAME FROM TABLE A」,因爲我h AVE現有表與周圍50個場,我不想要一個
多虧了它寫一個任何建議和答覆
如何插入到另一個表中除特殊領域如何將數據從一個表複製到另一個「除」一個場
如
表A
ID(auto_inc) CODE NAME
1 001 TEST1
2 002 TEST2
我想插入代碼和NAME到另一個表,但是除了ID之外,因爲它是自動增量的
注意:我不想使用「插入表B中的SELECT CODE,NAME FROM TABLE A」,因爲我h AVE現有表與周圍50個場,我不想要一個
多虧了它寫一個任何建議和答覆
這不可能不指定列完成(不包括主鍵) 。
此問題可能會對您有所幫助。 Copy data into another table
可以使用information_schema.columns
得到所有的列:
select group_concat(column_name separator ', ')
from information_schema.columns c
where table_name = 'tableA' and
column_name <> 'id';
這給你的列表中。然後將該列表放入您的代碼中。你也可以使用一個準備好的陳述,但是一個準備好的陳述可能是矯枉過正的。
如果這是一次性的事情? 如果是,請插入表A(從表B中選擇*) 然後改變表格以刪除不需要的列。
這是「在盒子外面」的想法;偶爾我會遇到alter table機制的問題,但是...... – JosephDoggie 2015-10-08 19:10:03
我試圖從一張表複製到另一張額外的字段。
源表爲TERRITORY_t *原理是創建一個與源表相同的臨時表,調整臨時表的列字段並將臨時表的內容複製到目標表中。
這是我做過什麼:
一個臨時表運行出口
CREATE TABLE IF NOT EXISTS TERRITORY_temp
( Territory_Id
INT生成SQL(11) NOT NULL, Territory_Name
varchar(50)COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY(Territory_Id
) )ENGINE = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
TERRITORY_temp
(Territory_Id
,Territory_Name
)VALUES (1, '東南'), (2, '西南'), (3,「東北地區'), (4,'NorthWest'), (5,'Central');或 INSERT INTO TERRITORY_temp
SELECT *從TERRITORY_t
添加額外的字段(一個或多個),以配合新的表
複製從臨時表到目的地表
INSERT INTO TERRITORY_new
SELECT * from TERRITORY_temp
請提供反饋意見。
這就是OP要求的。他們想要跳過原始表中的ID。正確的方法是列出information_schema中的列,並在select子句中使用它。 – Born2Code 2014-12-26 20:28:00
只需列出列。如果你不想輸入它們,你可以從'information_schema.columns'獲得它們。 – 2014-09-11 03:37:37
你不能'選擇*'減去第一列,你必須寫出列。根據你的需要,你可能會使用動態sql,但是我想說要映射你的列。 – sgeddes 2014-09-11 03:37:55
@GordonLinoff你能舉個例子嗎? – 2014-09-11 03:39:18