MySQL如何通过SELECT语句批量插入多行?#1064语法错误求助
解决MySQL INSERT...SELECT的1064语法错误
这是个很常见的INSERT...SELECT语法误用问题,咱们直接来拆解修复:
问题根源
你的SQL同时混用了VALUES()子句和SELECT查询,这不符合MySQL的语法规范——VALUES是用来插入具体常量值的,而通过查询结果批量插入时,完全不需要VALUES这一部分。
修正后的SQL语句
删掉多余的VALUES (product_id, serial_numnber, ...)部分即可,正确写法如下:
INSERT INTO unique_products (product_id, serial_numnber, pronexo_code, entry_time, exit_time, guarantee_long, expanded_guarantee_long) SELECT product_id, serial_number, pronexo_code, start_guarantee_date, start_guarantee_date, guarantee_long, expanded_guarantee_long FROM table_24;
额外注意事项
- 注意字段拼写一致性:你原SQL里的
serial_numnber(多了一个n)和SELECT中的serial_number要统一,避免字段不匹配错误 - 确保
unique_products的字段顺序、数据类型和table_24查询返回的结果完全对应,否则可能出现数据类型不兼容问题 - 如果
unique_products有自增主键或带默认值的字段,可在INSERT INTO后的字段列表中省略它们,让数据库自动处理
内容的提问来源于stack exchange,提问作者Martin AJ
相关产品推荐
相关产品推荐

