簡體   English   中英

將數據從一個MYSQL表導入另一個MYSQL表 - 第一個表與第二個表的行數不同

[英]Importing data from one MYSQL table into another — the first table doesn't have the same amount of rows as second table

在詢問之前,我已經閱讀並搜索了這個答案。 我試圖將4個列的數據從一個MYSQL表導入另一個具有4列以上的MYSQL表。 正如我所料,我得到了

#1136 - 列數與第1行的值計數不匹配

有沒有人知道解決這個問題的伎倆?

后記

我已經嘗試過了

INSERT INTO new_table(colname1,colname2,colname3,colname4)
SELECT 'colname1','colname2','colname3,'colname4' FROM old_table;

這會產生錯誤

1054'字段列表中的未知列'colname1'

我也試過了

INSERT INTO new_table 
SELECT 'colname1,'colname2,'colname3','colname4' 
FROM old_table;

這會產生錯誤

#1136列數與第1行的值計數不匹配

如果您嘗試INSERT INTO具有不同列數的表,則應指定要插入的列。

因此,如果您有一個包含20列的表,並且您知道要插入第1列,第10列,第15列和第20列,那么您可以在插入中明確命名這些列。

與此類似:

INSERT INTO Table2 (col1, col10, col15, col20)
SELECT col1, col2, col3, col4
FROM Table1

您需要指定要插入的列

insert into destination_table (col1, col2, col3, col4)
select * from source_table

想一想:數據庫引擎應該如何知道哪個源列必須填充目標列?

SQLFiddle演示

更新

刪除列名稱周圍的引號

INSERT INTO new_table(colname1, colname2, colname3, colname4)
SELECT colname1, colname2, colname3, colname4 
FROM old_table;

如果要轉義列名,請改用反引號( ` )。

INSERT INTO new_table(colname1,colname2,colname3,colname4)
SELECT 'colname1','colname2','colname3,NULL FROM old_table;

只需在沒有可用列匹配的地方輸入NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM