插入

时间:2016-08-09 13:35:35

标签: php mysql

我在MySQL数据库中有一个包含以下字段的表:

cid
number
date
code

cidnumber是关键。 每天使用date脚本将第一个php中另一个表中的数据插入此表中。 code字段在源表中是可更新的,如果在将记录插入目标时代码已更改,我想更新目标表中的现有记录。我的意思是我不想将更新的数据作为新行插入,而是更新当前记录。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

您可以使用MySQL的INSERT INTO ... ON DUPLICATE KEY UPDATE

来完成此操作

为了使其正常工作,您必须设置UNIQUE索引,以便MySQL产生错误(因为记录存在),然后转移到UPDATE部分。

在您的情况下,我认为此密钥为UNIQUE(cid, number, date)

根据您当前的表格,查询将如下所示:

INSERT INTO your_table_name 

(cid, number, date, code) 

VALUES 

(1, 2, '2016-08-09', 'code') 

ON DUPLICATE KEY SET code = 'code';

相应地调整列名称和值。

Documentation about ON DUPLICATE KEY UPDATE

答案 1 :(得分:-3)

IF EXISTS...
THEN
UPDATE ... SET ....
ELSE 
INSERT INTO ...

使用存储过程。