Mysql 为什么我在级联语法错误时得到删除
我正在尝试使我的消息系统中的组使用“级联删除”错误删除组、消息和成员。我的代码:Mysql 为什么我在级联语法错误时得到删除,mysql,Mysql,我正在尝试使我的消息系统中的组使用“级联删除”错误删除组、消息和成员。我的代码: "CREATE TABLE `groups` ( groups_id int AUTO_INCREMENT PRIMARY KEY, owner_id int NOT NULL, group_name varchar(255) )", "CREATE TABLE `groups_members` (
"CREATE TABLE `groups` (
groups_id int AUTO_INCREMENT PRIMARY KEY,
owner_id int NOT NULL,
group_name varchar(255)
)",
"CREATE TABLE `groups_members` (
groups_members_id int AUTO_INCREMENT PRIMARY KEY,
groups_id int NOT NULL,
user_id int,
FOREIGN KEY (groups_id)
REFERENCES groups(groups_id)
DELETE ON CASCADE
)",
"CREATE TABLE `groups_contents` (
groups_contents_id int AUTO_INCREMENT PRIMARY KEY,
user_id int,
groups_id int,
date_time DATETIME,
message varchar(1000),
FOREIGN KEY (groups_id)
REFERENCES groups(groups_id)
DELETE ON cascade
)"
它给我的错误是:语句[CREATE TABLE
groups\u members
(groups\u members\u id int AUTO\u INCREMENT主键、groups\u id int NOT NULL、user\u id int、FOREIGN KEY(groups\u id)REFERENCES groups(groups\u id)DELETE ON CASCADE)]中的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第8行“级联删除”附近使用的正确语法。您的代码中有一些小错误
Groups是一个保留字,所以它必须在backticks中
语法为“删除”,而不是“删除”
CREATE TABLE `groups` (
groups_id INT AUTO_INCREMENT PRIMARY KEY,
owner_id INT NOT NULL,
group_name VARCHAR(255)
);
CREATE TABLE `groups_members` (
groups_members_id int AUTO_INCREMENT PRIMARY KEY,
groups_id int NOT NULL,
user_id int,
FOREIGN KEY (groups_id)
REFERENCES `groups` (groups_id)
ON DELETE CASCADE
);
CREATE TABLE `groups_contents` (
groups_contents_id int AUTO_INCREMENT PRIMARY KEY,
user_id int,
groups_id int,
date_time DATETIME,
message varchar(1000),
FOREIGN KEY (groups_id)
REFERENCES `groups` (groups_id)
ON DELETE cascade
);
我不明白你的代码为什么有一个逗号分隔和双引号字符串封闭。第二,您的最后一个字符串不起作用,因为您错过了CREATETABLE部分。基本上,它是一个要执行的语句数组,这就是它们被逗号分隔的原因