首页 > 解决方案 > 以下 MySql 查询有什么问题?

问题描述

create table rolemaster(roleno int(2) not null,
                        primary key(roleno),
                        rolename varchar(20));

create table roombed(roomnumber varchar(10),
                     bednumber varchar(10) not null primary key,
                     username varchar,
                     foreign key(username) references roleusers(username));

它正在显示

错误编号:1064。

如何解决此错误?

标签: mysql

解决方案


试一试

create table roleusers(username varchar(10) not null primary key );

create table rolemaster(roleno int(2) not null primary key ,
                        rolename varchar(20));

 create table roombed(roomnumber varchar(10),
                     bednumber varchar(10) not null primary key,
                     username varchar(10),
                     foreign key (username) references roleusers (username));

我已经添加了一个角色用户表,所以我可以给你一个工作脚本。

编辑:对于初学者来说,您做错的是主键之前的逗号。您添加到我们不知道的表中的外键必须引用另一个表上的键,因此在发布的示例中,我添加了一个角色用户表设置username作为主键,以便以后可以将其作为外键引用。您还忘记正确定义用户名上的 varchar。正如另一个答案所提到的。

希望这个解释有帮助


推荐阅读