2014-05-14 74 views
2

我想在一段时间内更新/替换两列的值。MySQL - 替换列值

UPDATE table_messages SET id_msg = 4, numbers_msg = 50; 

和:

INSERT INTO table_messages (number_msg, id_msg) VALUES (50, 4); 

MySQL表示:#1062 - 重复录入 '4' 键 'PRIMARY'

都没有工作,有什么问题呢? 任何其他命令?

+1

听起来好像'id_msg'是你的主键。这意味着价值必须是“独特”的。 – sgeddes

+0

你有id_msg 一个主键,以便阅读本 http://stackoverflow.com/questions/812437/mysql-ignore-insert-error-duplicate-entry – volkinc

+0

都报道该消息?如果是这样,那么在更新之前已经有一个id_msg = 4。如果更新失败,它解释了为什么插入失败,因为系统中已有4个。 – xQbert

回答

4

您的id_msg不能被复制,因为它的primary key。你可能有兴趣更新numbers_msg

这样的:

UPDATE table_messages SET numbers_msg = 50 WHERE id_msg = 4 ; 

或者:

删除旧id_msg = 4,然后用你的查询。

INSERT INTO table_messages (number_msg, id_msg) VALUES (50, 4); 
+0

谢谢,很好的回答 – ITSolution

+0

你欢迎:)。 –