尝试运行
INSERT INTO BOOKING_EXTRAS (BOOKING_ID, EXTRAS_, EXTRAS_PRICE) VALUES ('1','Phone call: 1.80','1.8');
Oracle SQL Developer中的。我已经运行但是当我关闭它,然后重新打开它我得到这个错误:
Error starting at line 1 in command:
INSERT INTO BOOKING_EXTRAS (BOOKING_ID, EXTRAS_, EXTRAS_PRICE) VALUES ('1','Phone call: 1.80','1.8')
Error report:
SQL Error: ORA-00001: unique constraint (COURSEWORK_XE.BOOKING_EXTRAS_PK) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
我该如何解决这个问题?它发生在我跑的每张桌子上!
答案 0 :(得分:1)
您需要清除表或插入新信息,数据库不需要重复行,因为这样就无法在以后找到正确的行。
答案 1 :(得分:1)
如果您的唯一列由序列填充,请检查以确保您的序列具有相同的最后一个值'作为您的最高价值的唯一列。 我刚遇到一个问题,其中序列的最后一个值是'这远远低于我独特专栏中的最高值。 DBA运行了一个脚本来将序列更新为该数字应该是什么,并且我的错误消失了。
现在找出序列错误的原因......
答案 2 :(得分:0)
此外,如果 BOOKING_ID (如果我猜对了,当前作为主键)实际上对你没什么意义,你可以在你的架构中将其设置为AUTO INCREMENT,然后你不需要为BOOKING_ID插入值,系统会自动为您找到一个不重复的值。这可能会为您节省很多精力。
INSERT INTO BOOKING_EXTRAS (EXTRAS_, EXTRAS_PRICE) VALUES ('Phone call: 1.80','1.8');