【问题标题】:Insert into on duplicate key update current time stamp插入重复键更新当前时间戳
【发布时间】:2014-07-19 21:21:06
【问题描述】:

两个表的结构相同:

Url: unique key
date: current time stamp
projectname: text column

这是我要运行的 sql 命令:

INSERT INTO urldup (url, date, projectname)
Select url, date, projectname
From sample_temp s1
ON Duplicate key update date=s1.date

当有重复的网址时,我想将日期列更新为尝试插入的日期。

我可以使用上述查询很好地插入非重复项,但如果存在重复匹配项,则无法更新行日期。

谢谢

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    为了使on duplicate key update 工作,您必须拥有唯一的密钥。在url上创建唯一索引:

    create unique index sampletemp_url on sample_temp(url)
    

    然后,当您尝试插入副本时,日期将被更新。

    然后,您的声明将日期设置为记录中已经存在的日期。您想改用now()

    INSERT INTO urldup (url, date, projectname)
        Select url, date, projectname
        From sample_temp s1
        ON Duplicate key update date = now();
    

    【讨论】:

    • 即使 url 列设置为唯一,它仍然不会更新时间戳。
    猜你喜欢
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多