gpt4 book ai didi

insert - 插入时 DB2 重复键错误,但在选择计数(*)后工作

转载 作者:行者123 更新时间:2023-12-04 04:05:05 24 4
gpt4 key购买 nike

我有一个对我来说未知的问题,我不知道它背后的逻辑/原因是什么。当我尝试在表中插入记录时,出现 DB2 错误:

[SQL0803] Duplicate key value specified: A unique index or unique constraint *N in *N
exists over one or more columns of table TABLEXXX in SCHEMAYYY. The operation cannot
be performed because one or more values would have produced a duplicate key in
the unique index or constraint.

这对我来说是一个非常明确的信息。 但是如果我插入我的新记录,看看那里已经有什么记录,实际上不会有重复键。当我执行 SELECT COUNT(*) from SCHEMAYYY.TABLEXXX 然后尝试插入记录时,它完美地工作。

怎么会在执行SELECT COUNT(*)时突然插入记录呢?是否有某种与之关联的索引可能会因为不同步而出现问题?我没有设计数据模型,所以我对系统还没有很深的了解。

原始的 DB2 SQL 是:

--  Generate SQL 
-- Version: V6R1M0 080215
-- Generated on: 19/12/12 10:28:39
-- Relational Database: S656C89D
-- Standards Option: DB2 for i
CREATE TABLE TZVDB.PRODUCTCOSTS (
ID INTEGER GENERATED BY DEFAULT AS IDENTITY (
START WITH 1 INCREMENT BY 1
MINVALUE 1 MAXVALUE 2147483647
NO CYCLE NO ORDER
CACHE 20 )
,
PRODUCT_ID INTEGER DEFAULT NULL ,
STARTPRICE DECIMAL(7, 2) DEFAULT NULL ,
FROMDATE TIMESTAMP DEFAULT NULL ,
TILLDATE TIMESTAMP DEFAULT NULL ,
CONSTRAINT TZVDB.PRODUCTCOSTS_PK PRIMARY KEY( ID ) ) ;

ALTER TABLE TZVDB.PRODUCTCOSTS
ADD CONSTRAINT TZVDB.PRODCSTS_PRDCT_FK
FOREIGN KEY( PRODUCT_ID )
REFERENCES TZVDB.PRODUCT ( ID )
ON DELETE RESTRICT
ON UPDATE NO ACTION;

最佳答案

我想看看这些陈述......但是因为这个问题已经有一年了......我不会松口气。

我想问题可能出在默认生成

并且您没有为标识列传递 NULL,而是在第一次时不小心传递了零或其他一些重复值。

始终传递 NULL、传递非重复值或切换到 GENERATED ALWAYS

关于insert - 插入时 DB2 重复键错误,但在选择计数(*)后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13875776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com