1

私は2つのテーブルを持っています。DeviceDevice_Config。デバイス テーブルには次の列があります。

device_id
config_id
bla
bla2
foo
bar

そしてDevice_config、次の列があります

id
foo
bar

ご想像のとおり、config_id私のDeviceテーブルには外部キー参照id列があるためDevice_config 、テーブルにこの制約を追加しましたDevice

ALTER TABLE device
ADD CONSTRAINT device_config_id_fk FOREIGN KEY (config_id)
REFERENCES device_config (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE;

ただし、この方法では、行が削除されると、テーブルDevice_configの対応する行が削除されます。Deviceしかし、私はその反対を望んでいます。デバイスが削除されたら、対応するエントリをdevice_config削除したい。どうすればこれを達成できますか?

4

1 に答える 1

4

次に、ロジックを変更します。 デバイステーブルには *config_id* がなく、device_configには *device_id* があります。関係は、1 つのデバイスが多数の device_config を持つ場合があることです。

それで

ALTER TABLE device_config
ADD CONSTRAINT device_config_fk FOREIGN KEY (device_id)
REFERENCES config (device_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE;
于 2013-05-24T11:42:44.417 に答える