vin*_*vin 2 mysql primary-key auto-increment
我想创建一个primary key(auto-increment)开头的A001000001.这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
)
Run Code Online (Sandbox Code Playgroud)
这样,如果你插入一行时,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
)
Run Code Online (Sandbox Code Playgroud)
然后您可以将主键约束放在该列上:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (EmpID)
Run Code Online (Sandbox Code Playgroud)