В вашем случае вам следует рассмотреть возможность установки user_id
в качестве первичного ключа в user
и в качестве внешнего ключа в address
.Таким образом, если вы удаляете одного из ваших пользователей в user
, вы можете установить опцию ON DELETE CASCADE
для автоматического удаления связанных строк в адресе.
Во время создания вашей таблицы вам нужно только что-то сделатькак это:
CREATE TABLE user (
user_id INTEGER,
user_name VARCHAR(30),
PRIMARY KEY (user_id)
);
CREATE TABLE address (
user_id INTEGER,
address VARCHAR(30),
PRIMARY KEY (user_id, address),
FOREIGN KEY (user_id) REFERENCES user(user_id)
ON DELETE CASCADE
);
По сути, каждый пользователь имеет уникальный user_id
.Если вы удалите одного из этих пользователей, соответствующие адреса в address
также будут удалены, поскольку user.user_id
address.user_id
"указывает на" был удален.
Если вы хотите удалить только эти неиспользуемые адресаваше решение должно работать нормально.