Не работает ограничение внешнего ключа базы данных? - PullRequest
1 голос
/ 13 марта 2012

Я создал простую базу данных, используя Dezign:

enter image description here

Это вывод:

CREATE TABLE `Entity1` (
    `Attribute_1` INTEGER NOT NULL AUTO_INCREMENT,
    CONSTRAINT `PK_Entity1` PRIMARY KEY (`Attribute_1`)
);

# ---------------------------------------------------------------------- #
# Add table "Entity2"                                                    #
# ---------------------------------------------------------------------- #

CREATE TABLE `Entity2` (
    `Attribute_2` INTEGER NOT NULL AUTO_INCREMENT,
    `Attribute_11` INTEGER NOT NULL,
    CONSTRAINT `PK_Entity2` PRIMARY KEY (`Attribute_2`, `Attribute_11`)
);

# ---------------------------------------------------------------------- #
# Foreign key constraints                                                #
# ---------------------------------------------------------------------- #

ALTER TABLE `Entity2` ADD CONSTRAINT `Entity1_Entity2` 
    FOREIGN KEY (`Attribute_11`) REFERENCES `Entity1` (`Attribute_1`) ON DELETE CASCADE ON UPDATE CASCADE;

Attribute_11 в Entity2 относится к Attribute_1 в Entity1. Однако, когда я импортирую это на мой сервер MySQL 5.1, я все еще могу вставить строки в Entity2, даже если поле Attribute_11 не соответствует ни одной из записей в таблице Entity1.

Как я могу ограничить это с помощью Dezign? Почему ограничения внешнего ключа недостаточно?

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