5

这是sql中的两个声明

create table bookAdoption
(   
    courseId int,
    sem int,
    isbn int,
    PRIMARY KEY(courseId, sem, isbn),       
    FOREIGN KEY(courseId) REFERENCES course(courseId),
    FOREIGN KEY(sem) REFERENCES enroll(sem)
);

和另一个

CREATE TABLE bookAdoption
(
    courseId INT REFERENCES course(courseId) ,
    sem INT REFERENCES enroll(sem),
    isbn INT REFERENCES text1(isbn),
    PRIMARY KEY(courseId, sem, isbn)

);

仅使用引用关键字之间有什么区别

并同时使用引用和外来关键字 截屏

4

2 回答 2

4

如MySQL 文档 FOREIGN KEY ConstraintsREFERENCES所引用的,您不能使用没有外键约束:

此外,InnoDB 不识别或支持“内联引用规范”(如 SQL 标准中所定义),其中引用被定义为列规范的一部分。InnoDB 仅在指定为单独的 FOREIGN KEY 规范的一部分时才接受 REFERENCES 子句。对于其他存储引擎,MySQL Server 解析并忽略外键规范。

于 2013-02-03T13:19:32.650 回答
1

FOREIGN KEY 只能引用唯一的列。

在实践中,我们通常在主键上添加外键约束,我们说 FK引用了 PK。但是可以为任何 UNIQUE 列添加这样的约束。

为了使它起作用,SQL 语法要求您:

  • 声明一个外键
  • 告诉它参考什么
于 2013-02-03T13:21:46.323 回答