写入UPDATE语句时重复PRIMARY键错误

时间:2016-08-16 20:34:56

标签: mysql sql

我正在尝试使用UPDATE语句更新两个表。我的目标是: 此脚本将从#562旅行中删除Lamar Lincoln的预订, 它将为Lamar Lincoln增加一个新的预订#564。 作为替代方案,您可以使用更新事务完成相同的目的。 但是,我收到一条错误,说明我有重复的密钥,6-562? trip_number和guest_id都是PRIMARY键,但是Lamar(guest_id = 9)是两次旅行,562,579。 This is my DB design

use www;
UPDATE reservation
SET trip_number=564,
WHERE trip_number=562, guest_id=9;

2 个答案:

答案 0 :(得分:0)

尝试修复一些语法:

UPDATE reservation
SET trip_number=564
WHERE trip_number=562 AND guest_id=9;

答案 1 :(得分:0)

尝试Galz建议的语法。如果您收到相同的错误,那么reservation trip_number 562和guest_id 9必须有记录。

最佳做法:在创建记录后不要更改主键值,即使对于像这样的链接表中的复合主键也是如此。

DELETE FROM reservation WHERE guest_id = 9 AND trip_number = 562;
INSERT INTO reservation (guest_id, trip_number) VALUES (9, 564);