我需要一些帮助来创建触发器(我认为这是解决方案) 想象一下,我有两张桌子:
字符
+----+------+---------+
| id | name | stat_id |
+----+------+---------+
| | | |
+----+------+---------+
和
统计
+----+------+---------+
| id | ... | char_id |
+----+------+---------+
| | | |
+----+------+---------+
所以... 在字符表中创建了一个新插入后,我触发了在stats表上创建一个新行:
TRIGGER `new_stats_after_charcreation` AFTER INSERT ON `character` FOR EACH `ROW INSERT INTO stats (char_id) VALUES (new.id)`
这样,当我注册一个新字符时,触发器将在stats表中插入一个新行,其中字符id为“char_id”
但问题是,如何使用触发器生成的新ID来更新字符表中的“stat_id”字段?
希望你们明白,抱歉我的英语不好! 非常感谢你!
答案 0 :(得分:0)
正如评论者指出的那样,你并不需要它。 1:1关系可以通过两个表的融合来代替。但为了完整性,这里有两个基本提示。
使用BEFORE INSERT触发器,而不是AFTER,因此您可以在写入数据之前操作外部表ID。
使用LAST_INSERTED_ID()获取并使用外表中的插入ID(有关详细信息,请阅读Get the latest inserted id in a trigger?)