sql-server - 如何按顺序获取下一个可用号码?
问题描述
表有一个字段是一个计数器。
删除记录后,计数器编号再次可用。
新记录必须使用最低的可用“槽”作为计数器。
例子:
Material | Counter
00AF10 | 02
00AF11 | 03
00AF12 | 04
在这种情况下,新插入的记录将采用计数器编号“01”和之后的新记录,即计数器编号“05”。
我已经尝试将 select max counter + 1 作为新记录,但这当然不会满足在计数器序列中使用可用“插槽”的要求。我正在熬夜,我的大脑被炸了。你能帮我吗?
解决方案
你不应该这样做,这是一个坏主意,不仅在技术上而且在商业上也没有什么意义,也没有提供真正的好处。
但是,如果您真的必须这样做,并且获得不同的工作不是一种选择。
我会创建一个包含两列的新表,一列用于连续值,另一列是您的其他数据的外键,可能会被删除。
然后,您可以使用可怕的跨国触发器处理删除和插入,但至少您将能够适当地索引您的新表。
推荐阅读
- c# - 在 Process.Startinfo 中使用显式用户名时未找到 Sysnative 重定向器
- kubernetes - 向 kubernetes 指标服务器提供其密钥对的推荐方式?
- sql - 表头和明细表查询
- python - 将配置文件或 CLI Args 用于外部参数
- java - 通过 JDBC 发出与 MySql 数据库的连接
- c# - 如何将依赖项注入到通过从 startup.cs 中的 appsettings 绑定实例化的类中?
- powerbi - 有没有办法将数据源连接字符串作为参数传递给 power bi Embedded?
- javascript - 如何使用 CORS 下提供的代码 github 获取用户访问令牌?
- java - 从适配器内刷新整个 RecyclerView
- mariadb - MariaDB 简单的 SELECT ORDER 不排序