5

ここにSQLの2つの宣言があります

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 は、参照がカラム仕様の一部として定義されている「インライン REFERENCES 仕様」(SQL 標準で定義されている) を認識またはサポートしません。InnoDB は、個別の FOREIGN KEY 仕様の一部として指定されている場合にのみ REFERENCES 句を受け入れます。他のストレージ エンジンの場合、MySQL Server は外部キーの仕様を解析して無視します。

于 2013-02-03T13:19:32.650 に答える
1

FOREIGN KEY は、UNIQUE の列のみを参照できます。

実際には、通常、主キーに外部キー制約を追加します。これを、FKが PKを参照すると言います。ただし、そのような制約を任意の UNIQUE 列に追加することは可能です。

これが機能するためには、SQL 構文が必要です。

  • 外部キーを宣言する
  • 何を参照するかを伝える
于 2013-02-03T13:21:46.323 に答える