Mysql触发器,从新插入设置id

时间:2015-11-09 22:18:20

标签: mysql sql triggers

我需要一些帮助来创建触发器(我认为这是解决方案) 想象一下,我有两张桌子:

字符

+----+------+---------+
| 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”字段?

希望你们明白,抱歉我的英语不好! 非常感谢你!

1 个答案:

答案 0 :(得分:0)

正如评论者指出的那样,你并不需要它。 1:1关系可以通过两个表的融合来代替。但为了完整性,这里有两个基本提示。

  1. 使用BEFORE INSERT触发器,而不是AFTER,因此您可以在写入数据之前操作外部表ID。

  2. 使用LAST_INSERTED_ID()获取并使用外表中的插入ID(有关详细信息,请阅读Get the latest inserted id in a trigger?