我的目標是從許多不同的表中創建一個主串行號表,並且每個串行號必須是唯一的。Oracle從多個表中添加記錄
CREATE TABLE "TBL_SERIAL_NUMBER_MASTER"
( "INTERNAL_RECORD_ID" VARCHAR2(60) NOT NULL ENABLE,
"ASSET_ID" VARCHAR2(60),
"SERIAL_NUMBER" VARCHAR2(1000) NOT NULL ENABLE,
"VALID" VARCHAR2(60) DEFAULT 'Valid',
"HOST_NAME" VARCHAR2(255),
CHECK (valid IN ('Invalid', 'Valid')) ENABLE,
CHECK (valid IN ('Invalid', 'Valid')) ENABLE,
CHECK (valid IN ('Invalid', 'Valid')) ENABLE,
CONSTRAINT "TBL_SERIAL_NUMBER_MASTER_CON" PRIMARY KEY ("SERIAL_NUMBER") ENABLE
) ;
CREATE OR REPLACE TRIGGER "TBL_SERIAL_NUMBER_MASTER_INTER" BEFORE
INSERT
ON tbl_serial_number_master FOR EACH ROW WHEN (
NEW.internal_record_id IS NULL
) BEGIN :NEW.internal_record_id := tbl_serial_number_master_inter.NEXTVAL;
END;
/
ALTER TRIGGER "TBL_SERIAL_NUMBER_MASTER_INTER" ENABLE;
我已經使用一個表更新了SERIAL_NUMBER字段。現在我正在嘗試從另一個表中添加更多序列號。這些其他表具有重複和空值序列號您可以請告訴我如何創建查詢來添加已經不在TBL_SERIAL_NUMBER_MASTER中的唯一序列號。
請爲其他表格假設以下字段。
TABLE_SOURCE_B
- ID:-PK
- SERIAL_NUMBER
- 列表項
名稱
是否只想將那些行添加到主表中,這些行不會導致主表中的serial_number重複,或者是否想要在添加到主表時將serial_number替換爲唯一的行? –
我想只將那些行添加到master表中,這不會導致master表中的serial_number重複 –
請參閱鏈接http://stackoverflow.com/questions/14649622/oracle-insert-into-select-dup-val-on-指數的異常行爲 –