Как указать тип отношений в MySQL?

#mysql #syntax #relational-database

#mysql #синтаксис #реляционная база данных

Вопрос:

Просто небольшой вопрос относительно MySQL — я создал модель для своей базы данных с помощью MySQL Workbench, и в настоящее время я нахожусь в процессе написания кода (я уверен, что есть способ превратить модель в код, но я предпочитаю писать его сам, поскольку я в процессеобучения).

Мне просто интересно, как вы указываете, является ли отношение идентифицирующим или неидентифицирующим в синтаксисе MySQL?

Пример:

 CREATE TABLE foo (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    data VARCHAR(45),
    PRIMARY KEY(id)
)ENGINE=InnoDB;

CREATE TABLE foo2 (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    foo_id UNSIGNED NOT NULL,
    CONSTRAINT fk_foo2_id FOREIGN KEY(foo_id) REFERENCES foo.id,
    PRIMARY KEY(id)
)ENGINE=InnoDB;
  

Как бы мне сделать это идентифицирующим отношением?

Кроме того, каково влияние ON DELETE CASCADE и ON UPDATE CASCADE на такие отношения?

Спасибо!

Комментарии:

1. Вы не можете различить два типа отношений в MySQL.

2. ON DELETE CASCADE может быть настолько близко к идентифицирующей связи, насколько это возможно в SQL.

3. Это то, что я подумал, спасибо!