我有一個數據庫包含的ID卡的表像這樣的查詢如何兩列合併爲一個主鍵SQL
CREATE TABLE ID_CARD
(
N_CARD VARCHAR(20) NOT NULL,
ISSUE_DATE DATE NOT NULL,
ID_TYPE VARCHAR(2) NOT NULL,
CONSTRAINT PKEY_ID_CARD PRIMARY KEY(N_CARD, ISSUE_DATE)
);
而是一個身份證可以有相同的N_CARD
但不同ISSUE_DATE
也一個id卡可以具有相同的ISSUE_DATE
但是不同的N_CARD
,因此兩張身份證不能同時具有相同的N_CARD
和ISSUE_DATE
。
隨着SQL工作臺/ J的SQL源出於此表是
DROP TABLE ID_CARD;
CREATE CACHED TABLE ID_CARD
(
N_CARD VARCHAR(20) NOT NULL,
ISSUE_DATE DATE NOT NULL,
ID_TYPE VARCHAR(2) NOT NULL
);
ALTER TABLE ID_CARD
ADD CONSTRAINT PKEY_ID_CARD
PRIMARY KEY (N_CARD, ISSUE_DATE);
CREATE UNIQUE INDEX FKEY_N_CARD_CLIENT_INDEX_8
ON ID_CARD (N_CARD ASC);
CREATE UNIQUE INDEX FKEY_ISSUE_DATE_CLIENT_INDEX_8
ON ID_CARD (ISSUE_DATE ASC);
當我執行此查詢
INSERT INTO ID_CARD (N_CARD, ISSUE_DATE, ID_TYPE)
VALUES ('101215', DATE '2019-11-11', 'DL');
commit;
INSERT INTO ID_CARD(N_CARD,ISSUE_DATE,ID_TYPE)VALUES('101215',DATE '2019-11-12','DL');
commit;
此錯誤
Unique index or primary key violation: "FKEY_N_CARD_CLIENT_INDEX_8 ON
PUBLIC.ID_CARD(N_CARD) VALUES ('101215', 9)"; SQL statement:
INSERT INTO ID_CARD(N_CARD,ISSUE_DATE,ID_TYPE)VALUES('101215',DATE '2019-11-11','DL') [23505-193] [SQL State=23505, DB Errorcode=23505]
的問題是如何表示在數據庫中的情況?
有什麼問題你碼?這似乎是做你想做的事的正確方法。 –
錯誤,我插入兩個身份證與相同的N_CARD和不同的ISSUE_DATE –
你得到的錯誤是什麼? – squillman