1

我有个问题。我有 2 个表,有 1 个外键。

表 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 回答