Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从一个MYSQL表导入到另一个MYSQL表——第一个表不会';t的行数与第二个表的行数相同_Mysql_Sql - Fatal编程技术网

将数据从一个MYSQL表导入到另一个MYSQL表——第一个表不会';t的行数与第二个表的行数相同

将数据从一个MYSQL表导入到另一个MYSQL表——第一个表不会';t的行数与第二个表的行数相同,mysql,sql,Mysql,Sql,在提问之前,我已经阅读并寻找了这个问题的答案。我正在尝试将4列数据从一个MYSQL表导入另一个具有4列以上的MYSQL表。正如我所料,我得到了 #1136-列计数与第1行的值计数不匹配' 有人知道回避这个问题的诀窍吗 后记 我已经试过使用 INSERT INTO new_table(colname1,colname2,colname3,colname4) SELECT 'colname1','colname2','colname3,'colname4' FROM old_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行的值计数不匹配


如果您试图
插入到具有不同列数的表中,则应指定要插入的列

因此,如果您有一个包含20列的表,并且您知道要插入到第1列、第10列、第15列和第20列,那么您可以在insert中显式地命名这些列

与此类似:

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

如果您试图
插入到具有不同列数的表中,则应指定要插入的列

因此,如果您有一个包含20列的表,并且您知道要插入到第1列、第10列、第15列和第20列,那么您可以在insert中显式地命名这些列

与此类似:

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
想想看:DB引擎应该如何知道哪个源列必须填充哪个目标列

更新 删除列名周围的引号

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

如果要转义列名,请改用反勾号(
`
)。

您需要指定要插入的列

insert into destination_table (col1, col2, col3, col4)
select * from source_table
想想看:DB引擎应该如何知道哪个源列必须填充哪个目标列

更新 删除列名周围的引号

INSERT INTO new_table(colname1, colname2, colname3, colname4)
SELECT colname1, colname2, colname3, colname4 
FROM old_table;
如果要转义列名,请改用反勾号(
`

只要在没有可用于匹配


只要在没有可匹配的列的地方输入NULL即可

我已经尝试过了。我更新了我原来的问题,以反映我尝试过的两种不同说法的结果。当我尝试您建议的方法时(这是正确的方法),我在“字段列表”中得到了错误1054未知列“colname1”。我被难住了。谢谢您的帮助:)。@RyanSatterfield能否使用表结构和一些示例数据编辑您的问题?@RyanSatterfield是否在列名周围使用单引号?我已经尝试过了。我更新了我原来的问题,以反映我尝试过的两种不同说法的结果。当我尝试您建议的方法时(这是正确的方法),我在“字段列表”中得到了错误1054未知列“colname1”。我被难住了。感谢您的帮助:)。@RyanSatterfield能否使用表格结构和一些示例数据编辑您的问题?@RyanSatterfield是否在列名周围使用单引号?我非常感谢您的帮助。我用更多的解释和SQL语句更新了我的问题。@RyanSatterfield:删除列名周围的引号。否则它将被解释为字符串。看我的更新。谢谢你帮我。我真的很感谢你的帮助。我用更多的解释和SQL语句更新了我的问题。@RyanSatterfield:删除列名周围的引号。否则它将被解释为字符串。看我的更新。谢谢你帮我。