我已就此进行了大量研究,并得出以下结论:
INSERT INTO actives
SELECT email, active_date
FROM actives_ac
ON DUPLICATE KEY UPDATE active_date = IF (
active_date < VALUES(active_date), VALUES(active_date), active_date
);
导致SQL Error (1136): Column count doesn't match value count at row 1
。
email
字段VARCHAR(255)
在两个表中都是KEY
和UNIQUE
。
active_date
是DATE
字段。
我正在尝试插入记录,如果它在actives表中是新的,或者如果actives_ac.active_date
中的值比actives.active_date
中已有的值更新,则更新记录。
答案 0 :(得分:0)
它只是意味着您要插入的值的数量与表中的总列数不匹配。通过指定要插入值的列来尝试更明确,例如,
INSERT INTO actives (email, active_date)
SELECT email, active_date
FROM actives_ac
.....
注意:您这样做的原因是因为您有一个设置为AUTO_INCREMENT
的列,对吧?