【问题标题】:Auto generate varchar Ticket number via DB通过 DB 自动生成 varchar 票号
【发布时间】:2010-03-08 15:47:45
【问题描述】:

我正在寻找有关如何让数据库为 varchar 列自动生成票号(最好是通过 SQL 数据库)的建议。我在数据库中有以下表格:活动和案例,并且希望格式为“Act000001”或“Cse000001”。这将类似于标识列属性。

任何建议都将受到高度赞赏。

谢谢。 生锈

【问题讨论】:

  • 建议:说出你的 DBMS 是什么。有些问题有非常方便的 DBMS 特定解决方案。

标签: sql identity autogeneratecolumn


【解决方案1】:

触发器。

无论如何,不​​要将其用作主键 - 在 SQL Server 上,您只会受到巨大的性能影响。

放入一个普通的标识列作为PK,然后将其用作普通的业务属性(其上的唯一索引)。

您可以通过触发器、存储过程等任何您喜欢的方式生成它们。前生,后生。随心所欲。

【讨论】:

    【解决方案2】:

    如果您可以处理回滚等不可避免的丢失数字,并且每个表只需要一个前缀,我建议使用一个标识列(用于创建数字)和一个计算列来将字母和前导零添加到身份。如果比这更复杂,我建议使用触发器。这不应该仅由应用程序处理,否则您最终将有一些人必须手动输入的记录被弄乱了。您还需要处理竞争条件,因此请谨慎设计。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 2020-09-08
      • 2021-04-01
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多