1

私は問題があります。1 つの外部キーを持つ 2 つのテーブルを取得しました。

表 A と表 B

CREATE TABLE A
kdtrans int (5) primary key



INSERT INTO A Values
(1),(2),(3)

次に、テーブルBに挿入したい

CREATE TABLE B
kdtrans int (5) primary key,
FOREIGN KEY kdtrans REFERENCES A(kdtrans)



INSERT INTO B Values
(1),(2),(3),(4),(5)

これらのクエリは、制約のエラー原因です。制約を回避するにはどうすればよいですか。テーブルAに新しいレコードを挿入することはありません.

4

1 に答える 1

1

制約を無効にすることでこれを行うことは可能ですが、それが保証するはずのものはもはや真実ではないので、単にドロップすることもできます.

使用できる制約を無効にするには

CREATE TABLE A
  (
     kdtrans INT PRIMARY KEY
  )

INSERT INTO A
VALUES      (1),
            (2),
            (3)

CREATE TABLE B
  (
     kdtrans INT PRIMARY KEY CONSTRAINT FK FOREIGN KEY REFERENCES A(kdtrans)
  )

ALTER TABLE B
  NOCHECK CONSTRAINT FK

INSERT INTO B
VALUES      (1),
            (2),
            (3),
            (4),
            (5) 

それをドロップするには、使用します

ALTER TABLE B DROP CONSTRAINT FK
于 2013-04-20T10:02:15.600 に答える