我试图完成的是,当 tableB 中的一行被删除时,我想更新 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 | |
+----------------------------+--------------+------+-----+---------------------+----------------+
和表B这个:
+-------------+-------------+------+-----+---------+----------------+
| 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)?)。文档对我来说有点不清楚。
我还阅读了这个主题: 创建一个触发器,当另一个表中的列更新时更新一个表上的列
但这不适用于我,我想?
那么我将如何创建这样的表(创建表...)或删除行语句?提前致谢!