表结构:
Create table YHJ_BARCODES as select s.* from BARCODES where 1=0
插值插不进:
INSERT
INTO BARCODES
SELECT DISTINCT t.*
FROM YHJ_BARCODES T WHERE TRIM(T.COM_ID)||TRIM(T.BAR_CODE) NOT IN (SELECT TRIM(DD.COM_ID)||TRIM(DD.BAR_CODE) FROM BARCODES DD )
报错:
ORA-00001: 违反唯一约束条件 .PK_BARCODES
查看定义:
CREATE UNIQUE INDEX PK_BARCODES
ON BARCODES (COM_ID, BAR_CODE)
)
ALTER TABLE BARCODES ADD
(
CONSTRAINT PK_BARCODES
PRIMARY KEY ( COM_ID, BAR_CODE )
);
SELECT YB.BAR_CODE,BAR.BAR_CODE FROM YHJ_BARCODES YB LEFT JOIN BARCODES BAR ON TRIM(YB.BAR_CODE)=TRIM(BAR.BAR_CODE)
结果行数是 YHJ_BARCODES的行数,左边列有值,右边BAR.BAR_CODE ,没有值。
我想这应该证明,二者是没有重复的,但是为什么插值,插不进呢。
oracle 11.2.0.4