数据库外键约束不起作用?

时间:2012-03-13 18:32:41

标签: database foreign-keys

我使用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限制此操作?为什么外键约束不够?

0 个答案:

没有答案