gpt4 book ai didi

创建 TableA 记录时,MySQL 自动将记录插入 TableB

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:59 24 4
gpt4 key购买 nike

我有两张 table 。 msUser 和 msUserChar。我在 msUser 和 msUserChar 之间建立了关系,其中 msUser 中的 PK 是 msUserChar 中的 FK

我需要的是,当一条记录插入 msUser 时,也会在 msUserChar 中创建一条记录,其中 FK 是来自 msUser 的 PK。

我尝试过使用约束、更新级联和各种其他关系方法。我知道,我可以使用 Last_Insert_Id 方法,或使用事务性 mysql,并且仅在创建两条记录时才提交。然而,我想知道,是否有办法以关系的方式做到这一点。

本质上,每个用户都必须有一个角色。所以当用户表插入一条记录时,在用户字符表中创建一条相关记录。

根据要求,这里是描述的表格:

+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| _msId | int(10) unsigned | NO | PRI | NULL | auto_increment |
| msUser | varchar(25) | NO | | NULL | |
| msPass | varchar(30) | NO | | NULL | |
| msSecret | varchar(30) | NO | | NULL | |
| msEmail | varchar(45) | NO | | NULL | |
| msAccType | int(2) | NO | | NULL | |
| msLastLog | datetime | YES | | NULL | |
+-----------+------------------+------+-----+---------+----------------+

+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| _msCharUserID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| _msId | int(10) unsigned | YES | MUL | NULL | |
| _msCharID | int(10) unsigned | YES | MUL | NULL | |
| msChar_1 | int(10) | YES | | NULL | |
| msChar_2 | int(10) | YES | | NULL | |
| msChar_3 | int(10) | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+

最佳答案

在 MySQL 中,一次查询是不可能的,因为 INSERT 一次只能将数据插入到一个表中。所以如果你不想使用TRIGGERS,那么你可以试试这个

  1. 创建一个将执行 2 个 INSERT 语句的存储过程

  2. 将这 2 个 INSERTS 包装在事务中以确保两个查询都成功。

关于创建 TableA 记录时,MySQL 自动将记录插入 TableB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30031253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com