下面的mysql查询有什么问题?

mmvthczy  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(356)
  1. create table rolemaster(roleno int(2) not null,
  2. primary key(roleno),
  3. rolename varchar(20));
  4. create table roombed(roomnumber varchar(10),
  5. bednumber varchar(10) not null primary key,
  6. username varchar,
  7. foreign key(username) references roleusers(username));

它正在显现
错误编号:1064。
如何解决此错误?

okxuctiv

okxuctiv1#

你忘了给你的衣服定尺寸了 username varchar .

  1. CREATE TABLE roombed
  2. (
  3. roomnumber VARCHAR(10),
  4. bednumber VARCHAR(10) NOT NULL PRIMARY KEY,
  5. username VARCHAR(10),
  6. -- ^--^----------- This
  7. FOREIGN KEY(username) REFERENCES roleusers(username)
  8. );
nue99wik

nue99wik2#

试试这个

  1. create table roleusers(username varchar(10) not null primary key );
  2. create table rolemaster(roleno int(2) not null primary key ,
  3. rolename varchar(20));
  4. create table roombed(roomnumber varchar(10),
  5. bednumber varchar(10) not null primary key,
  6. username varchar(10),
  7. foreign key (username) references roleusers (username));

我添加了一个roleusers表,所以我可以给你一个工作脚本。
编辑:对于初学者来说,你做错的是主键前的逗号。您添加到我们不知道的表中的外键必须引用另一个表中的键,因此在示例中,我添加了roleusers表设置 username 作为主键,以便以后可以作为外键引用。您还忘记了在username上正确定义varchar。正如另一个答案所提到的。
希望这个解释有帮助

相关问题