我只是在子表中对父表进行外键引用。当我尝试从父表中删除其引用存在于子表中的行时,令人惊讶的是它允许我删除它。我试图通过在删除限制上写入并且没有它来显式创建子表,但没有任何帮助。任何想法为什么会发生这种情况?下面是我在创建表时使用的代码。
CREATE TABLE region
(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL
);
CREATE TABLE aggregator
(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL
);
CREATE TABLE gateway
(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(50) NOT NULL,
region_id int ,
aggregator_id int ,
is_public boolean DEFAULT 0 NOT NULL,
FOREIGN KEY (region_id) REFERENCES region(id),
FOREIGN KEY (aggregator_id) REFERENCES aggregator(id)
);