如何保证和 return 唯一 ID 在 MySql 与一个客户端上的许多用户
How to guarantee and return unique ID in MySql with many users on one client
所以我正在处理一个包含三个表的 MySQL 数据库:
Table 1 定义了一个水果,列有 "name"、"color"、"flavor" 和 "Fruit_ID".
Table 2 定义了一个类别,包含 "name"、"description" 和 "Cat_ID".
等列
Table 3 定义水果和类别的关系,有两列,"Fruit_ID"和"Cat_ID"。
每当插入水果时,必须使用Table将其与类别相关联 3.我最初的计划是使Fruit_ID和Cat_ID自增并使用this method, but the problem is my architecture has multiple users sharing just one client connection, and LAST_INSERT_ID is only guaranteed 对每个客户都是正确的,afaik。
所以我的问题是,我可以使用什么样的 SQL 查询来确保当一个水果输入 Table 1 时, Fruit_ID 中使用了正确的 Fruit_ID 46=] 2来分类吗?
此外,如果这不是建立这种关联的最佳方式(我是数据库体系结构的新手),我愿意重构我的数据库。
我不愿意在 SQL 中使用存储过程。
非常感谢!
如果您不能使用 LAST_INSERT_ID()
,则必须使用查询来获取刚刚插入的项目的 ID。
因此,要添加一行表示苹果是红色的,您可以:
INSERT INTO fruit_category (fruit_id, cat_id)
SELECT f.id, c.id
FROM fruit AS f
CROSS JOIN category AS c
WHERE f.name = 'apple'
AND c.name = 'red'
如果您正在创建此关系并且不只是添加行,这与您会做的事情相同。
所以我正在处理一个包含三个表的 MySQL 数据库:
Table 1 定义了一个水果,列有 "name"、"color"、"flavor" 和 "Fruit_ID".
Table 2 定义了一个类别,包含 "name"、"description" 和 "Cat_ID".
等列Table 3 定义水果和类别的关系,有两列,"Fruit_ID"和"Cat_ID"。
每当插入水果时,必须使用Table将其与类别相关联 3.我最初的计划是使Fruit_ID和Cat_ID自增并使用this method, but the problem is my architecture has multiple users sharing just one client connection, and LAST_INSERT_ID is only guaranteed 对每个客户都是正确的,afaik。
所以我的问题是,我可以使用什么样的 SQL 查询来确保当一个水果输入 Table 1 时, Fruit_ID 中使用了正确的 Fruit_ID 46=] 2来分类吗?
此外,如果这不是建立这种关联的最佳方式(我是数据库体系结构的新手),我愿意重构我的数据库。
我不愿意在 SQL 中使用存储过程。
非常感谢!
如果您不能使用 LAST_INSERT_ID()
,则必须使用查询来获取刚刚插入的项目的 ID。
因此,要添加一行表示苹果是红色的,您可以:
INSERT INTO fruit_category (fruit_id, cat_id)
SELECT f.id, c.id
FROM fruit AS f
CROSS JOIN category AS c
WHERE f.name = 'apple'
AND c.name = 'red'
如果您正在创建此关系并且不只是添加行,这与您会做的事情相同。