use*_*257 2 mysql foreign-keys
这是2个表的sql
CREATE TABLE Customer(
c_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
f_name VARCHAR(50) NOT NULL,
l_name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
number INTEGER,
date_joined DATE NOT NULL CHECK (date_added <= now())
);
CREATE TABLE Address(
a_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
c_id INTEGER NOT NULL REFERENCES Customer(c_id) ON DELETE CASCADE,
billing BOOLEAN,
f_line VARCHAR(50) NOT NULL,
s_line VARCHAR(100),
county VARCHAR(20) NOT NULL,
p_code VARCHAR(7) NOT NULL,
number INTEGER(11)
);
Run Code Online (Sandbox Code Playgroud)
但是,当我删除一个客户时,他们的地址不会被删除,任何想法为什么?
在不知道你正在使用哪个数据库的情况下无法确定无疑,但我认为你可能需要将fk声明为这样的约束:
CREATE TABLE Address(
a_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
c_id INTEGER NOT NULL,
billing BOOLEAN,
f_line VARCHAR(50) NOT NULL,
s_line VARCHAR(100),
county VARCHAR(20) NOT NULL,
p_code VARCHAR(7) NOT NULL,
number INTEGER(11),
FOREIGN KEY (c_id) REFERENCES Customer(c_id) ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2723 次 |
| 最近记录: |