如何在MySQL中创建一个小型关系数据库?

时间:2010-06-01 20:41:42

标签: mysql foreign-keys

我需要在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中需要这个。

2 个答案:

答案 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。

  • id必须是表ClotheType中的索引列,并且必须具有相同的类型(即int)
  • ClotheType也必须是ENGINE=INNODB。如果您已创建它,则可以使用ALTER TABLE ClotheType ENGINE=INNODB
  • 进行更改

回答你在评论Ólafur的答案中提出的问题:MySQL在解析相关数据定义语言语句时本地处理外键约束,但是它的一些存储引擎不支持它们。大多数MySQL安装中的默认存储引擎是MyISAM,它不支持外键。 InnoDB确实支持他们。

答案 1 :(得分:0)

你可以在MySQL中使用InnoDB数据库引擎(而不是默认的MyISAM),它有外键约束。

以下是InnoDB Foreign Key Constraints

上的MySQL文档条目