0

私が達成しようとしているのは、tableB の 1 行が削除されたときに tableA の行を更新したいということです。

tableA のレイアウトは次のとおりです。

+----------------------------+--------------+------+-----+---------------------+----------------+
| Field                      | Type         | Null | Key | Default             | Extra          |
+----------------------------+--------------+------+-----+---------------------+----------------+
| user_id                    | int(11)      | NO   | PRI | NULL                | auto_increment |
| nickname                   | varchar(32)  | NO   |     | NULL                |                |
| password                   | varchar(129) | NO   |     | NULL                |                |
| mafia_id                   | int(11)      | NO   |     | 0                   |                |
+----------------------------+--------------+------+-----+---------------------+----------------+

そしてtableBのこれ:

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| mafia_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| mafia_name  | varchar(32) | NO   |     |         |                |
| mafia_tag   | varchar(5)  | NO   |     |         |                |
| mafia_color | int(11)     | NO   |     | 0       |                |
| mafia_car   | int(11)     | NO   |     | 0       |                |
| mafia_base  | int(11)     | NO   |     | 0       |                |
+-------------+-------------+------+-----+---------+----------------+

tableB の対応する mafia_id が削除されたときに、すべての tableA.mafia_id を 0 に設定したいと考えています。

データベースが自動的にそれを行うというドキュメントを読みましたが、テーブルの作成時にいくつかのものを指定する必要があります (CREATE TABLE、create_definition: | CHECK (expr)?)。ドキュメントは私には少し不明確です。

このトピックも読みました: 別のテーブルの列が更新されたときに、あるテーブルの列を更新するトリガーを作成する

でも、これは私には当てはまらないと思いますか?

では、そのようなテーブルを作成する (テーブルを作成する ...) または行ステートメントを削除するにはどうすればよいでしょうか? 前もって感謝します!

4

1 に答える 1