1

我对此进行了很多研究,并提出了以下建议:

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)既是 aKEYUNIQUE在两个表中。 active_date是一个DATE字段。

我正在尝试插入一条记录,如果它在活动表中是新的,或者如果 inactives_ac.active_date中的值比已经 in 中的值更新,则更新记录actives.active_date

4

1 回答 1

0

它只是意味着您要插入的值的数量与表上的总列数不匹配。尝试通过指定将插入值的列来更明确,例如,

INSERT INTO actives (email, active_date)
SELECT email, active_date 
FROM actives_ac
.....

注意:您这样做的原因是因为您有一个设置为AUTO_INCREMENTed 的列,对吗?

于 2013-03-01T15:16:29.453 回答