SQL:如何自动增加数据库中的值

本文关键字:数据库 增加数 增加 何自动 SQL | 更新日期: 2023-09-27 18:15:55

我正在创建一个自定义CustomerID,从文本框中获取名字和姓氏的第一个双字符,如下所示:

 string CustomID = (FirstNameTxtbox.Value.Substring(0, 2) + LastNametxtbox.Value.Substring(0, 2));

以避免重复的CustomerID我想:

得到第5个值,它是整型,因为前4个值是字符。然后增加1

my attempt:

string s =  cmd.CommandText= " Select MAX(CustomerID) from Customers";
string CustomID = (FirstNameTxtbox.Value.Substring(0, 2) + LastNametxtbox.Value.Substring(0, 2) + (Convert.ToInt32(s)+1)) ;

的例子:

名字= Mak
姓= shima

CustomerID = MASH1

下一个值为KAAR2

SQL:如何自动增加数据库中的值

不建议您这样做,您应该设计一个具有Auto Increment小值的主键,例如整数,记住表是根据聚集索引(您的主键)进行物理排序的,而非聚集索引是基于您的主键的。

如果您仍然需要,您可以在另一个字段中添加您的组合值,如果您的查询是基于它的,请为它创建一个非聚集索引。

使主键为一个自动递增的整数,并且CustomerID是一个基于ID计算的字符串,这样它将永远不会重复。

可以通过以下命令设置CustomerID:

  1. 基于自增ID的计算域
  2. 触发插入和设置CustomerID
  3. 在后端自定义代码,添加客户对象,检索主键并设置CustomerID

你的CustomerID可以是类似于0000001的东西。

示例:第一个客户的主键为1,CustomerID000001,下一个客户为000002,依此类推

是主键(id)是必需的,但客户id可以是自定义字符串,如'任何'。

如果您想像这样生成Customer ID

* name= Mak

last name = shima

CustomerID = MASH1

下一个值将是例如KAAR2*

在Sql Server/Oracle中使用前端生成KA(first)AR(last)+Sequence

CREATE SEQUENCE [dbo].[CustomerId_Generation] 
 AS [bigint]
 START WITH 1
 INCREMENT BY 1
 MINVALUE -9223372036854775808
 MAXVALUE 9223372036854775807
 CACHE 
GO

获取序列值,然后添加到数据库中。

有一种情况,相同的 customerid 返回的客户比我的意思是重复相同的 customerid 也可以由你的代码处理,如果你遵循这种方法。