gpt4 book ai didi

mysql - 如何在 SQL 中自动创建具有以下系列 A001000001 ... A001xxxxxx 的主键?

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

我想创建一个以 A001000001 开头的 primary key(auto-increment)。这里 A001 是常量,000001 是迭代的。

我想要这样的行:

enter image description here

如何使用 SQL 查询来完成?

最佳答案

对于 SQL Server(您没有明确指定您使用的是哪个 RDBMS),我的建议是:

  • 在您的表中添加一个 INT IDENTITY 列 - 坦率地说,我会将该列设为主键
  • 在您的表中添加一个计算列来执行此“前缀”操作

类似于:

CREATE TABLE dbo.YourTable
( ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED,
EmpID AS 'A001' + RIGHT('0000000' + CAST(ID AS VARCHAR(10)), 7) PERSISTED
)

这样,如果您插入一行,ID 会自动设置,EmpID 也会自动设置为 A0010000001A0010000002、....等等。

如果要将主键放在 EmpID 列上,则需要确保在创建它时包含 NOT NULL 规范:

CREATE TABLE dbo.YourTable
( ID INT IDENTITY(1,1),
EmpID AS 'A001' + RIGHT('0000000' + CAST(ID AS VARCHAR(10)), 7) PERSISTED NOT NULL
)

然后您可以在该列上放置主键约束:

ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (EmpID)

关于mysql - 如何在 SQL 中自动创建具有以下系列 A001000001 ... A001xxxxxx 的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152960/

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