我在MySQL数据库中有一个表,其中包含以下字段:
cid
number
date
codecid和number是密钥。每天都会使用php脚本将来自第一个date的另一个表的数据插入到这个表中。源表中的code字段是可更新的,如果在向目标插入记录时代码发生了变化,我想要更新目标表中的现有记录。我的意思是,我不想将更新后的数据作为新行插入,而是更新当前记录。
我该怎么做呢?
发布于 2016-08-09 22:16:27
您可以使用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';相应地调整列名和值。
发布于 2016-08-09 21:47:10
IF EXISTS...
THEN
UPDATE ... SET ....
ELSE
INSERT INTO ...使用存储过程。
https://stackoverflow.com/questions/38852334
复制相似问题