我需要在MySQL中创建一个包含两个表的小型数据库。
衣服和ClotheType
衣服有:ID,名称,颜色,品牌,价格,ClotheTypeID ClotheType具有:ID,描述
在Microsoft SQL中,它将是:
create table Clothes(
id int,
primary key(id),
name varchar(200),
color varchar(200),
brand varchar(200),
price varchar(200),
clothetypeid int,
foreign key clothetypeid references ClotheType(id)
)
我在MySQL中需要这个。
答案 0 :(得分:1)
create table Clothes(
id int,
primary key(id),
name varchar(200),
color varchar(200),
brand varchar(200),
price varchar(200),
clothetypeid int,
constraint `constr_Clothes_clothetypeid_fk` foreign key `clothetypeid_fk` (`clothetypeid`) references `ClotheType`(`id`)
) ENGINE=INNODB
NB。
ClotheType
中的索引列,并且必须具有相同的类型(即int)ClotheType
也必须是ENGINE=INNODB
。如果您已创建它,则可以使用ALTER TABLE ClotheType ENGINE=INNODB
回答你在评论Ólafur的答案中提出的问题:MySQL在解析相关数据定义语言语句时本地处理外键约束,但是它的一些存储引擎不支持它们。大多数MySQL安装中的默认存储引擎是MyISAM,它不支持外键。 InnoDB确实支持他们。
答案 1 :(得分:0)
你可以在MySQL中使用InnoDB数据库引擎(而不是默认的MyISAM),它有外键约束。
上的MySQL文档条目