2017-01-11 13 views
0

初期状態UPDATE Iは外部キー関係の制約 - 、更新にカスケード外来IDの他の値

得たもの

parents 
id parent_validity 
1  0 (updated as 0) 
2  1 

children 
id parent_id child_validity 
1  1   0 (This val is expected as 0) 
2  1   0 (This val is expected as 0) 
3  2   1 (This val is expected as no change) 

AFTER

parents 
id parent_validity 
1  1 
2  1 

children 
id parent_id child_validity 
1  1   1 
2  1   1 
3  2   1 

必要な状態

children id parent_id child_validity 1 1 0 2 1 0 3 2 0 (all values under this column became 0) 

テーブルparentsparent_validityを更新すると、テーブルchildrenchild_validityが更新される必要があります。 から関連があります。idの外部キー関係です。

私の結果は次のとおりです。parentsの有効な変更がのテーブルchildrenに変更されました。

私はPHPで必要なことをしたくありません。 MySQLが処理します。

Webでのリクエストに対する正しい検索条件を取得できなかったため、解決策が見つかりませんでした。手伝ってくれませんか。

ありがとうございました。

注:私のqタイトルには更新が必要です。 (それは申し訳ありませんが、私の最高だった。)を作成し、 CONSTRAINT fk_parent_validity FOREIGN KEY (child_validity) REFERENCES parents(parent_validity) ON UPDATE CASCADEがあなたのテーブル間の新しい外部キーを作成し、制約の作成制約に

CREATE TABLE `parents` (
    `id` int(2) unsigned NOT NULL AUTO_INCREMENT, 
    `parent_validity` bit(1) NOT NULL COMMENT '1:valid or 0:invalid', 
    PRIMARY KEY (`id`), 
    KEY (`parent_validity`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

CREATE TABLE `children` (
    `id` int(2) unsigned NOT NULL AUTO_INCREMENT, 
    `parent_id` int(2) unsigned NOT NULL, 
    `child_validity` bit(1) NOT NULL COMMENT '1:valid or 0:invalid', 
    PRIMARY KEY (`id`), 
    KEY (`child_validity`), 
    CONSTRAINT fk_parent_id FOREIGN KEY (parent_id) REFERENCES parents(id) ON UPDATE CASCADE, 
    CONSTRAINT fk_parent_validity FOREIGN KEY (child_validity) REFERENCES parents(parent_validity) ON UPDATE CASCADE 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

答えて