MySQLの外部キー?質問する

MySQLの外部キー?質問する

ここ数週間、ゆっくりと SQL を学んでいます。リレーショナル代数とリレーショナル データベースの動作の基本をすべて習得しました。今やろうとしているのは、SQL がどのように実装されているかを学ぶことです。

私が遭遇した障害は、MySQLの外部キーです。外部キーがMySQLに存在するということ以外、あまり情報を見つけることができません。翻訳MySQL が持つストレージ スキーマ。

MySQL に実装された外部キーの簡単な例は何ですか?

動作する例を示すよりも私の欠陥を指摘したいのであれば、これは動作していないように見える、私が書いたスキーマの一部です。

CREATE TABLE `posts` (
`pID` bigint(20) NOT NULL auto_increment,
`content` text NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`uID` bigint(20) NOT NULL,
`wikiptr` bigint(20) default NULL,
`cID` bigint(20) NOT NULL,
PRIMARY KEY  (`pID`),
Foreign Key(`cID`) references categories,
Foreign Key(`uID`) references users
) ENGINE=InnoDB;

ベストアンサー1

カテゴリとユーザーのテーブルがすでに存在し、それぞれ cID と uID が主キーとして含まれていると仮定すると、これは機能するはずです。

CREATE TABLE `posts` (
`pID` bigint(20) NOT NULL auto_increment,
`content` text NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`uID` bigint(20) NOT NULL,
`wikiptr` bigint(20) default NULL,
`cID` bigint(20) NOT NULL,
PRIMARY KEY  (`pID`),
Foreign Key(`cID`) references categories(`cID`),
Foreign Key(`uID`) references users(`uID`)
) ENGINE=InnoDB;

句には列名が必要ですreferences

おすすめ記事