Post テーブルの「in_reply_to」フィールドを、同じテーブルの id フィールドを参照する null 許容の外部キーにしようとしています。基本的に、このフィールドが null の場合、投稿は別の投稿への返信ではありません。null 以外の場合、意味があれば、投稿は一致する ID を持つ投稿への返信です。しかし、mysql でファイルを実行すると、次のエラーが発生します。
エラー 1064 (42000): SQL 構文にエラーがあります。'(160) , FOREIGN KEY (userID) REFERENCES users(userID), FOREIGN KEY (in_reply_' at line 6 Query OK, 0 rows impacted (0.36 sec) 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 )
したがって、私が書いたコマンドに何か問題があると言っていますが、何が間違っているのかを特定することはできません。
これがsqlファイルの内容です
CREATE DATABASE siteData CHARACTER SET utf8 COLLATE utf8_general_ci;
USE siteData;
CREATE TABLE users (
userID INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(40),
email VARCHAR(40),
password VARCHAR(125)
);
CREATE TABLE post (
postID INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userID INT,
post_date TIMESTAMP(6),
in_reply_to INT NOT NULL,
postContent(160),
FOREIGN KEY (userID) REFERENCES users(userID),
FOREIGN KEY (in_reply_to) REFERENCES post(postID)
);
CREATE TABLE follow (
userID INT,
followerID INT,
PRIMARY KEY (userID,followerID),
FOREIGN KEY (userID)
REFERENCES users(userID),
FOREIGN KEY (followerID)
REFERENCES users(userID)
);
したがって、投稿のIDを参照する方法についての指針があれば、いただければ幸いです。