#mysql
#mysql
Вопрос:
Я пытаюсь заставить группы в моей системе обмена сообщениями удалять группу, сообщения и участников, используя удаление при каскадной ошибке. Мой код :
"CREATE TABLE `&roups` (
&roups_id int AUTO_INCREMENT PRIMARY KEY,
owner_id int NOT NULL,
&roup_name varchar(255)
)",
"CREATE TABLE `&roups_members` (
&roups_members_id int AUTO_INCREMENT PRIMARY KEY,
&roups_id int NOT NULL,
user_id int,
FOREIGN KEY (&roups_id)
REFERENCES &roups(&roups_id)
DELETE ON CASCADE
)",
"CREATE TABLE `&roups_contents` (
&roups_contents_id int AUTO_INCREMENT PRIMARY KEY,
user_id int,
&roups_id int,
date_time DATETIME,
messa&e varchar(1000),
FOREIGN KEY (&roups_id)
REFERENCES &roups(&roups_id)
DELETE ON cascade
)"
Ошибка, которую это выдает мне: ОШИБКА При ВЫПОЛНЕНИИ ИНСТРУКЦИИ [CREATE TABLE &roups_members
( &roups_members_id int AUTO_INCREMENT PRIMARY KEY, &roups_id int NOT NULL, user_id int, ОГРАНИЧЕНИЕ banana FOREIGN KEY (&roups_id) ССЫЛАЕТСЯ НА группы (&roups_id), УДАЛЯЕМЫЕ ПРИ КАСКАДНОМ УДАЛЕНИИ )] У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с ‘DELETE ПРИ КАСКАДНОМ УДАЛЕНИИ)’ в строке 8
Комментарии:
1. я не понимаю ваш код, почему строка разделена запятой и заключена в двойные кавычки. во-вторых, ваша последняя строка не работает, потому что вы пропустили часть СОЗДАНИЯ ТАБЛИЦЫ
2. По сути, это массив инструкций для выполнения, поэтому они разделены запятой
Ответ №1:
У вас есть несколько незначительных ошибок в вашем коде
Groups — это зарезервированное слово, поэтому оно должно быть в обратных значках.
Синтаксис находится при УДАЛЕНИИ, а не при УДАЛЕНИИ при
CREATE TABLE `&roups` (
&roups_id INT AUTO_INCREMENT PRIMARY KEY,
owner_id INT NOT NULL,
&roup_name VARCHAR(255)
);
CREATE TABLE `&roups_members` (
&roups_members_id int AUTO_INCREMENT PRIMARY KEY,
&roups_id int NOT NULL,
user_id int,
FOREIGN KEY (&roups_id)
REFERENCES `&roups` (&roups_id)
ON DELETE CASCADE
);
CREATE TABLE `&roups_contents` (
&roups_contents_id int AUTO_INCREMENT PRIMARY KEY,
user_id int,
&roups_id int,
date_time DATETIME,
messa&e varchar(1000),
FOREIGN KEY (&roups_id)
REFERENCES `&roups` (&roups_id)
ON DELETE cascade
);