mysql - SQL外键错误?

标签 mysql sql mariadb

  DROP TABLE IF EXISTS userRole;
  DROP TABLE IF EXISTS account;

  CREATE TABLE account (
     lionID VARCHAR(50) NOT NULL,
     firstName VARCHAR(50) NOT NULL,
     hashedpass VARCHAR(255) NOT NULL,
     PRIMARY KEY (lionID)
   );


   CREATE TABLE roles (
     roleID INT UNSIGNED AUTO_INCREMENT NOT NULL,
     lionID VARCHAR(50) NOT NULL,
     administrator BOOLEAN NOT NULL DEFAULT False,
     qRole VARCHAR(255) NOT NULL,
     PRIMARY KEY (roleID),
     FOREIGN KEY (lionID) REFERENCES account(lionID)
   );

我无法理解为什么会出现错误。角色中的外键 lionID 正在引用帐户中的主键 lionID,但它似乎不喜欢它。非常感谢任何帮助。

ERROR 1064 (42000) at line 76: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOREIGN KEY lionID REFERENCES account lionID'
)' at line 8

最佳答案

我认为问题出在 create 语句中:

您需要使用语法:

CONSTRAINT `fk_account`
        FOREIGN KEY (lionID) REFERENCES account(lionID)

关于mysql - SQL外键错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49788052/

相关文章:

mysql - Worlight 中的 SQL 适配器?

sql - 如果测试 rownum 的值大于 100,则表 rownum 返回 0 条记录

c# - 如何在 C# 中使用 SQL 查询从 SQL 数据库中获取表的所有行

MySQL 按日期排序 GROUP BY DATE FORMAT 是按字母顺序排列的

mysql - MariaDB 中的日期时间 current_timestamp

mysql - 无法写入文件(mysql 命令)

PHP和Mysql,关于价格字段中字段出现2次$、美元符号时删除记录

mysql - 从两个单独的数据库表中选择值的最佳查询是什么?

SQL:Datepart 不返回 7 个工作日中的 1 个的结果

php - MySQL/MariaDB 事务访问冲突 1064