1

私はこの種のものがうまくいくかどうか疑問に思いました:

会社と住所の2つのテーブルがあるとします。各会社は1つのアドレスしか持つことができません。簡略化されたスキーマは次のようになります。

COMPANIES
id
address_id
name
(...)

ADDRESSES
id
first_name
street
(...)

ここで、 COMPANIES.address_id-> ADDRESSES.id ON DELETE SET NULL ONUPDATECASCADEに外部キーを追加します。ただし、会社が削除されたときにアドレスも削除してほしい。したがって、逆の場合は、ADDRESSES.id-> COMPANIES.address_id ONDELETECASCADEになります。これは安全で可能ですか?

4

1 に答える 1

2

たぶん、外部キーの代わりに、トリガーを使用することが問題の解決策になる可能性があります。

create trigger addr_delete
after delete on companies for each row
begin
   delete from addresses where id=old.address_id
end
于 2012-07-23T14:03:20.633 に答える