更换以保持价值

时间:2011-09-14 17:07:44

标签: mysql

我想在一个表中替换为cust_id是主键,但我不想修改日期字段。因此,此表上的正常插入看起来像:

    REPLACE INTO emails(cust_id, email, date) 
VALUES(55, 'email@email.com', '2011-08-07 00:00');

现在,无需修改日期字段,它将是:

REPLACE INTO emails(cust_id, email, date) 
VALUES(55, 'email@email.com', date.value?);

但我如何准确保留日期值?

2 个答案:

答案 0 :(得分:5)

简短的回答,你不能保持这样的日期。来自Mysql documentation

  

所有列的值都取自中指定的值   REPLACE声明。任何缺少的列都设置为默认值   值,就像INSERT一样。 您无法引用来自的值   当前行并在新行中使用它们

也许您想要使用http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

答案 1 :(得分:2)

如果有任何重复,

insert ignore将跳过插入

如果您需要更新某些字段,
你可以做到

insert into some_table values (...)
on duplicate update email=?;