有 2 个表“用户”和“地址”。
create table address (
username varchar(255) not null,
address1 varchar(255),
primary key (username)
)
和
create table users (
user_id varchar(255) not null,
username varchar(255) not null,
address varchar(255) not null,
primary key (user_id)
)
“用户”表有几列,包括一个名为“地址”的列,这个“用户”表被修改为
1. alter table if exists users add constraint uk_users_username unique (username)
2. alter TABLE users ADD CONSTRAINT fk_user_address FOREIGN KEY(address) REFERENCES address(username) ON DELETE RESTRICT ON UPDATE CASCADE
(只是试图建立“用户”到“地址”的一对一单向关系)
现在,正如预期的那样,当我在“users”表中添加一条有效记录时,它会自动在“address”表中添加一条记录。此外,当我使用以下 DELETE sql 之一时
1. delete from users where user_id = 'some_user_id';
2. delete from users where username = 'some_user_name';
它会按照预期从“用户”表中删除记录;但不会删除“地址”中的相关记录。
问题:它不应该抱怨“用户”表对“地址”有约束,并且直到“地址”中的相关记录也被删除之前,这个“用户”不能被删除(因为我们有...ON DELETE RESTRICT ON UPDATE CASCADE)?
提前致谢!!