gpt4 book ai didi

mysql - 如何用另一列创建标识列?

转载 作者:行者123 更新时间:2023-11-28 23:26:12 25 4
gpt4 key购买 nike

我有一个包含三列(ID、商店和用户)的表格。

ID & Shop 是复合主键

我想根据店铺生成身份证号码。

例如,A店第一用户A店2号用户B店No.1用户

如何根据店铺生成这个身份证号码。

编号IDID int 身份,店铺 varchar(100),用户 varchar(100)

最佳答案

在表本身的“创建语句”中执行它是特定于数据库类型的。它还需要特定的数据库专业知识(处理棘手的事情,如启动计数器、自动增量值、并行事务期间的值跳跃以提高效率、在备份/恢复期间处理计数器、处理部分主键的复杂性)。可能一些数据库专家会以防弹的方式回答它。

与此同时,这里是您如何在 MySQL 中在“插入语句”本身中执行此操作(通过自动运行它)。这也可以在触发器/过程中工作(根据您的情况,您希望保护开发人员免于意外插入重复项的程度)。如果您在一个过程中执行此操作,您可以将该过程作为您的主要界面提供给开发人员(并为他们取消直接插入表的访问权限)。

MySQL 5.6 架构/插入:

create table tt
(
id int, shop varchar(100), user varchar(100)
);


insert into tt values (
ifnull((select max(id) from tt a where a.shop='shop1'),0)+1,
'shop1',
'user1'
);

insert into tt values (
ifnull((select max(id) from tt a where a.shop='shop1'),0)+1,
'shop1',
'user1'
);

查询:

select * from tt

[结果]:

| id |  shop |  user |
|----|-------|-------|
| 1 | shop1 | user1 |
| 2 | shop1 | user1 |

关于mysql - 如何用另一列创建标识列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242444/

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