Iam пытается сделать поле «in_reply_to» в столбце «Столбец» нулевым внешним ключом, который ссылается на поле id в той же таблице. В принципе, если это поле равно null, сообщение не является ответом на другое сообщение - если оно не равно null, то сообщение является ответом на сообщение с идентификатором соответствия, если это имеет смысл. Но когда я запускаю свой файл через mysql, я получаю следующую ошибку.MySQL создает нулевой допустимый внешний ключ, который ссылается на поле id в той же таблице
ERROR 1064 (42000): У вас есть ошибка в синтаксисе SQL; в руководстве, соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи '(160) , FOREIGN KEY (идентификатор пользователя) ссылки пользователей (USERID), FOREIGN KEY (in_reply_' в строке 6 Query OK, 0 затронутых строк (0,36 сек)
Так что сказать что-то не так с командами, которые я написал, но я не могу точно определить, что IAM делает неправильно.
Вот содержимое файла 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)
);
если у вас есть указатели на то, как заставить ссылку ссылаться на идентификатор сообщения, я был бы признателен.
Ошибка 'PostContent (160),', я предположил бы, это должно быть 'PostContent VARCHAR (160),'. Ваши фактические внешние ключи в порядке. Хотя я бы предположил, что вы хотите, чтобы 'in_reply_to' не был нулевым -' in_reply_to INT NULL', а не 'in_reply_to INT NOT NULL,' – GarethD
Спасибо, я не могу поверить, что это было настолько глупо, что я забыл. – MrKeyboard
благодарю за вашу помощь и советы, я запустил ее и никаких ошибок :) – MrKeyboard