Как я могу создать небольшую реляционную базу данных в MySQL? - PullRequest
0 голосов
/ 02 июня 2010

Мне нужно сделать небольшую базу данных в MySQL с двумя таблицами.

Одежда и одежда

Одежда имеет: 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 ]

1 голос
/ 02 июня 2010
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

Примечание.

  • id должен быть индексированным столбцом в таблице ClotheType, и он должен иметь одинаковый тип (т. Е. Int)
  • ClotheType также должно быть ENGINE=INNODB. Если вы уже создали его, вы можете изменить его, используя ALTER TABLE ClotheType ENGINE=INNODB

Чтобы ответить на вопрос, который вы задали в своем комментарии к ответу Олафура: MySQL обрабатывает ограничения внешнего ключа в той мере, в какой он анализирует соответствующие операторы языка определения данных, но некоторые из его механизмов хранения не поддерживают их. Механизм хранения по умолчанию в большинстве установок MySQL - это MyISAM, который не поддерживает внешние ключи. InnoDB поддерживает их.

0 голосов
/ 02 июня 2010

Вы можете использовать ядро ​​базы данных InnoDB в MySQL (вместо MyISAM по умолчанию), оно имеет ограничения внешнего ключа.

Вот запись документации MySQL о Ограничениях внешнего ключа InnoDB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...