作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个以 A001000001
开头的 primary key(auto-increment)
。这里 A001
是常量,000001
是迭代的。
我想要这样的行:
如何使用 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
也会自动设置为 A0010000001
、A0010000002
、....等等。
如果要将主键放在 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/
我是一名优秀的程序员,十分优秀!