更新到数据库时,我的更新收到以下错误:
ORA-00001:唯一约束(DONALDBURY.BARS_ID_PK)被违反
我正在使用以下代码作为更新。我不想摆脱约束,但想找到一种解决方法。我想停止设置重复值。
MERGE INTO bars DEST_TABLE
USING (select :P3_filename as filename from dual) SOURCE_TABLE
ON (DEST_TABLE.name = SOURCE_TABLE.filename)
WHEN MATCHED THEN
UPDATE SET image = ORDSYS.ORDImage()
WHEN NOT MATCHED THEN
INSERT (
image_id,
filename,
image,
name,
address,
postcode,
description)
VALUES (:P3_image_id,
:P3_filename,
ORDSYS.ORDImage(),
:P3_NAME,
:P3_ADDRESS,
:P3_POSTCODE,
:P3_DESCRIPTION);
BARS_ID_PK
在image_id
列上有一个唯一的约束-该约束禁止多行在该列中具有相同的值。
您正在尝试插入image_id
表中已经存在的新行。
为避免此错误,只需:P3_image_id
在查询中向占位符赋值一个表中尚不存在的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句