1

だから私は3つのテーブルを持っています:

tbl_client(clientpk, name, etc)
tbl_address(address_pk, street1, street2 etc) 
tbl_client_address (client_address_pk, clientpk_fk, addresspk_fk)

私はトリガーにあまり精通していないので、クライアントを削除すると、のエントリも削除されるので、誰かがそれを実現する方法を教えてくれるかもしれませんtbl_client_address。これは参照によって実行できることは理解していますが、tbl_client_addressが削除されると、そのクライアントに関連するアドレスも削除する必要があります。

出来ますか?

4

2 に答える 2

1

innodbを使用している場合は、メインテーブルに制約を追加できます。

CONSTRAINT myForeignKeyFOREIGN KEY(typeId)REFERENCES typesid)ON DELETE CASCADE ON UPDATE CASCADE

トリガーをいじる必要はありません

于 2012-06-08T15:46:01.260 に答える
0

クライアント レコードが削除されたときにアドレス レコードを削除したいという事実は、tbl_client_address 解決テーブルがまったく必要ないことを示唆しています。tbl_client_address テーブルが必要なのは、特定のアドレスが実際に複数のクライアントに関連付けられる場合のみです (その場合、tbl_client レコードの削除に基づいて削除を自動的にカスケードしたくない場合)。つまり、tbl_address.clientpk_fk フィールドだけで十分かどうかを検討し、tbl_client_address テーブルを完全に削除してから、Jeff が提案した制約を使用して tbl_client レコードの削除をカスケードする必要があるということです。

于 2012-06-08T17:08:50.653 に答える