内容重复

时间:2010-12-22 13:15:23

标签: mysql mysql-error-1062

我想更新一个表SQL,其中ID +列已经存在。

问题是,当我想要插入时,它给了我一条消息错误:

**#1062 - Duplicate entry '35' for key 1**

所以,我尝试进行更新,但它也不起作用,因为语法不正确我的请求SQL的形式是:

INSERT INTO `liens_series` 
(`id`, `id_series`, `password`) 
VALUES (35, '12', 
'<br>Saison 3 en cours de production'), .... 

列表太长了。

4 个答案:

答案 0 :(得分:1)

您可能想要调查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')

分享并享受。

答案 1 :(得分:0)

使用此:http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html 如果需要,它将执行您想要的操作,插入或更新。

答案 2 :(得分:0)

如果您插入尚未确定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等)中返回。

答案 3 :(得分:0)

如果要插入行,并更新其内容(如果已存在),请使用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的数量。