mysql - 主键和外键相同 MySQL 显示异常

标签 mysql sql-server database postgresql mysql-workbench

当执行下面的代码行时抛出错误。

CREATE TABLE USERS (
USERNAME VARCHAR(10) NOT NULL,
PASSWORD VARCHAR(32) NOT NULL,
ENABLED SMALLINT,
PRIMARY KEY (USERNAME)
);

CREATE TABLE AUTHORITIES (
USERNAME VARCHAR(10) NOT NULL,
AUTHORITY VARCHAR(10) NOT NULL,
FOREIGN KEY (USERNAME) REFERENCES USERS
);

我得到的异常是:

1215 Cannot create foreign key constraint

外键和主键足够相同会引发错误。

请帮忙

最佳答案

是否使引用更具体:

CREATE TABLE AUTHORITIES (
USERNAME VARCHAR(10) NOT NULL,
AUTHORITY VARCHAR(10) NOT NULL,
FOREIGN KEY (USERNAME) REFERENCES USERS(USERNAME)
);

这里的文档( http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html )似乎以 table(column) 的形式存在

关于mysql - 主键和外键相同 MySQL 显示异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590173/

相关文章:

sql-server - 如何将本地数据库迁移到引用另一个数据库的azure?

sql - 将整数列转换为 varchar 并与字符串进行比较

php - 自定义 CMS 如何使用 PHP/MySQL 数据库为帖子创建类别

php - 在 MySQL 数据库中为新闻通讯添加三个新字段

mysql - 'string' 中的 SQL 自动增量

mysql - 尽管我已经创建了 "Table ' 数据库,为什么它显示 ERROR 1146 'student' Student.db“不存在”?

php - 如何通过cpanel设置远程mysql的访问IP

sql-server - GRAILS 3 sql 表达 : no driver

sql - 通过游标将主键值插入另一个表

Android 数据未保存在数据库中