重复的内容
问题描述:
我想更新一个表,其中的内容ID +列已经存在。重复的内容
问题是,当我想让它给了我一个消息错误插入:
**#1062 - Duplicate entry '35' for key 1**
所以,我尽量让一个更新,但它并没有太多工作,因为语法ISN不正确我的请求的形式SQL是:
INSERT INTO `liens_series`
(`id`, `id_series`, `password`)
VALUES (35, '12',
'<br>Saison 3 en cours de production'), ....
该列表太长。
答
如果插入新行其中的ID尚未确定:
INSERT INTO `liens_series` (`id`, `id_series`, `password`) VALUES (NULL, '12', '<br>Saison 3 en cours de production');
或
INSERT INTO `liens_series` (`id_series`, `password`) VALUES ('12', '<br>Saison 3 en cours de production');
新的ID将在LAST_INSERT_ID()
(MySQL的)或mysql_insert_id()
返回(C ,PHP等)。
答
如果要插入一行,更新其内容,如果它已经存在,则使用REPLACE INTO
:
REPLACE INTO `liens_series` (`id`, `id_series`, `password`) VALUES (35, '12', '<br>Saison 3 en cours de production');
需要注意的是在幕后,ID为35的行会被删除(如果存在的话)然后发布INSERT
。因此,您无法仅部分更新该行,并且受影响的行数反映了DELETES的隐含数量+ INSERTS的数量。
答
您可能想要调查MySQL中INSERT语句的ON DUPLICATE KEY UPDATE子句。简而言之,您的声明可能会更改为
INSERT INTO `liens_series`
(`id`, `id_series`, `password`)
VALUES
(35, '12', '<br>Saison 3 en cours de production')
ON DUPLICATE KEY UPDATE `id_series` = '12',
`password` = '<br>Saison 3 en cours de production')
分享和享受。