mysql - 当列数与值数不匹配时插入

标签 mysql insert

我有一个插入sql语句,例如

INSERT INTO `table_a` (`col_a`, `col_b`, `col_c`, `col_d`) VALUES
(1, 2, 3, 4),
(2, 1, 6, 9),
(3, 1, 4, 5)

我想将它插入到另一个表中,但是我想插入它的表与 sql 语句的结构不同(它的字段更少),例如

table_b has columns 'col_a', 'col_b', 'col_d'

我必须对原始 sql 语句做些什么才能将其插入到 table_b 中。我想这可能只是忽略 col_c 中的值并将其发送到临时变量而不是字段。例如

INSERT INTO `table_b` (`col_a`, `col_b`, @temp_var, `col_d`) VALUES
(1, 2, 3, 4),
(2, 1, 6, 9),
(3, 1, 4, 5)

最佳答案

使用临时表:

CREATE TEMPORARY TABLE myTemp (
col_a integer,
col_b integer,
col_c integer,
col_d integer
);
INSERT INTO myTemp (col_a, col_b, col_c, col_d) VALUES (1, 2, 3, 4), (2, 1, 6, 9), (3, 1, 4, 5);
INSERT INTO table_a (SELECT col_a,col_b,col_d FROM myTemp);

一旦你的 session 结束,该表就会被删除(或者你可以手动删除它)

关于mysql - 当列数与值数不匹配时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2145976/

相关文章:

sql-server - SQL Server 将大量行插入到其中包含默认值和标识列的表中

javascript - PHP MySQL 考勤 - 如何限制时间(一天一次)

php - MySQL 增加查看计数查询 - 非常慢

插入 580 行后,MySQL 表插入错误因外键错误而失败

node.js - 如何从 CSV 文件将经纬度值添加到数据库中

java - 使用 Java 应用程序将电子邮件地址插入 MySQL

c# - 插入RavenDB;最快的方法

php - 为什么查询显示结果,但大部分参数值都是错误的?

php - 当 JQuery slider 中的值更改时运行 MySQL 查询

php - 如何从表中选择数据并将其设为字符串?