Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么我在级联语法错误时得到删除_Mysql - Fatal编程技术网

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部分。基本上,它是一个要执行的语句数组,这就是它们被逗号分隔的原因