gpt4 book ai didi

mysql - 数据库设计 : auto-increment key & update inconsistencies

转载 作者:行者123 更新时间:2023-11-29 01:43:48 25 4
gpt4 key购买 nike

两个表共享一个唯一标识符“id”。两个表都应使用“id”连接。将“id”定义为两个表中的自动递增主键可能存在更新不一致的风险。

是否有一些通用模式可以避免这种情况,或者我是否必须先处理更新 table1 和 table2,然后利用最后插入的 id(因此不在 table2 中将 id 声明为 auto inc)?

最佳答案

首先,如果您在 MySQL 中使用 InnoDB 表引擎,则可以同时使用事务和外键来实现数据一致性。

其次,在第一个表中插入后,您可以获得最后一个插入 ID(取决于您访问数据库的方式)并将其用作外键。

例如表 1:用户:user_id, username表 2:User_Profiles:user_id, name, phone

在 User_Profiles 中不需要将 user_id 定义为自动递增,而是先在 Users 表中插入一条记录并使用 user_id对于 User_Profiles 记录。如果您在交易中这样做,Users 记录在完成之前不会在交易连接之外看到,这样您可以保证即使在您插入用户之后但在您之前发生了一些不好的事情已插入配置文件 - 不会有困惑的数据。

您还可以定义 User_Profiles 表中的 user_id 列是 Users 表的外键,因此如果有人从 Users表,数据库会自动删除User_Profiles中的。还有许多其他选项 - 阅读更多相关信息。

关于mysql - 数据库设计 : auto-increment key & update inconsistencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479309/

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