Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Insert语句试图包含重复的键_Sql_Database_Oracle_Syntax_Syntax Error - Fatal编程技术网

Sql Insert语句试图包含重复的键

Sql Insert语句试图包含重复的键,sql,database,oracle,syntax,syntax-error,Sql,Database,Oracle,Syntax,Syntax Error,试图逃跑 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_, EX

试图逃跑

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.

我该如何解决这个问题?这发生在我跑的每一张桌子上

您需要清除表或插入新信息,数据库不需要重复的行,因为这样以后就不可能找到正确的行。

此外,如果预订ID(如果我猜正确,当前用作主键)实际上对您没有意义,您可以将其设置为模式中的自动增量,之后您不需要为BOOKING_ID插入值,系统将自动找到一个不重复的值。这可能会为您节省很多精力

INSERT INTO BOOKING_EXTRAS (EXTRAS_, EXTRAS_PRICE) VALUES ('Phone call: 1.80','1.8');

如果您的唯一列由序列填充,请检查以确保您的序列具有与最高值唯一列相同的“最后一个值”。 我刚刚遇到一个问题,序列中的“最后一个值”远低于我唯一列中的最高值。DBA运行了一个脚本,将序列更新为应该的数字,我的错误消失了


现在要找出序列为何如此错误…

检查该表,该表似乎有一条主键相同的记录。这也是非常错误的。除非列上有唯一的约束(在您的情况下,可能是预订id),否则可以复制