私は、データベースはこのクエリつのプライマリキーSQLなどの2つの列を結合する方法を
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)
);
のようなIDカードの表が含まれているが、IDカードが同じN_CARD
を持つことができるだけでなく、さまざまISSUE_DATE
とidを持っています同じISSUE_DATE
を持つことができますが、異なるN_CARD
を持つことができるので、2つのidカードに同じN_CARD
とISSUE_DATE
を同時に設定することはできません。このテーブルのSQLソースSQLワークベンチ/ jに
は、私はこのクエリ
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;
このエラーを実行すると
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);
が
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]
の質問はどのように表現するためにされていますデータベースの状況ですか?しかし
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)
);
:
CREATE UNIQUE INDEX FKEY_N_DT_CLIENT_INDEX_8
ON ID_CARD (N_CARD ASC, ISSUE_DATE ASC);
だ 任意の最適化を解かれ、このクエリ
と私の問題を解決コード?それはあなたが望むことをする正しい方法のようです。 –
エラーが表示されます。同じN_CARDのIDカードを2枚挿入し、別のISSUE_DATEの –
を取得します。エラーは何ですか? – squillman