0

私は2つのテーブルを持っています:usersそして「請求書」。へのbills外部キーとして.users

billsテーブルから削除するときに、テーブルから行を自動的に削除したいusers。そのために、次のクエリでテーブルを変更しますが、請求書テーブルからエントリを削除しません。

私の変更ステートメントは次のとおりです。

ALTER TABLE bills
ADD CONSTRAINT fk_pid
FOREIGN KEY (pid)
REFERENCES users(id)
ON DELETE CASCADE

これpidは請求書テーブルの外部キーですが、ユーザーテーブルの id 主キーです

上記の問題を解決するのを手伝ってください、事前に感謝します。

4

2 に答える 2

1

変更の代わりに作成を使用してください。それ以外の場合、構文は問題ありません

Create TABLE bills(
Your columns details
------
------
ADD CONSTRAINT fk_pid
FOREIGN KEY (pid)
REFERENCES users(id)
ON DELETE CASCADE
)

これを試して..

それがうまくいかない場合は、このことも試してください。両方のテーブルに主キーと外部キーの不一致の問題がある場合は、削除カスケードを追加できません。そのためには、そのキーの問題を修正する必要があります。たとえば、ユーザーテーブルに主キー値がなく、同じ ID を使用している請求書テーブルを外部キーとして使用すると、請求書テーブルにカスケードを追加できません。そのためには、請求書テーブルからそのキーを削除してから、カスケード スクリプトを Alter で追加してみてください。同じ問題がありましたが、この方法を使用してうまくいきました。あなたのためにも働きます。ありがとう

于 2013-03-15T08:22:48.957 に答える
0

createのこのソリューションは 、実際に何が欠けているかを理解するのに役立つと思います。

質問とともに十分な詳細を提供していないため、必要に応じてカスタマイズしてみてください。

create tableステートメントで何かをしなければならないと思います

またはALTER1 またはALTER2でこれを試してください

于 2013-03-15T08:24:15.507 に答える