【发布时间】:2021-11-24 04:36:53
【问题描述】:
CREATE TABLE STUDENT
(
stu_id CHAR(5) PRIMARY KEY,
stu_lname VARCHAR(15) NOT NULL,
stu_minit CHAR,
stu_fname VARCHAR(15) NOT NULL,
department VARCHAR(15)
);
CREATE TABLE FGKMKJWEKJH
(
stu_id CHAR(5),
crs_id CHAR(8),
sem_id CHAR(5),
Grade CHAR(2),
Mark DECIMAL(4, 2) CHECK (Mark BETWEEN 0.00 AND 100.00),
CONSTRAINT fk_inv_product_id
FOREIGN KEY (stu_id) REFERENCES STUDENT(stu_id)
ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT pkVW
PRIMARY KEY (stu_id, crs_id, sem_id)
);
【问题讨论】:
-
您能否发布您收到的完整且准确的错误消息?另外:这适用于 SQL Server 的哪个版本??
-
FGKMKJWEKJH表中的stu_id是primary key的一部分,并且您在删除时将 FK 行为设置为SET NULL。 null 的值将违反primary key约束,因此这是无效的。您需要删除SET NULL行为或从primary key约束中删除该列...PRIMARY KEY (stu_id, crs_id, sem_id)。CASCADE将是一个有效的 FK 约束选项,但不是SET NULL。 -
如果你真的阅读它产生的错误它告诉你确切地问题
because one or more referencing columns are not nullable.
标签: sql sql-server syntax foreign-keys key