【发布时间】:2017-11-12 10:21:03
【问题描述】:
在我的一个 mysql 表中,我需要生成长度为 15 位的主键字段。
Structure is 2+2+2+2+2+5 as ex: 010101010100001.
前 10 位值来自五个 2 位表单/输入字段,后 5 个字符是唯一且递增的。因此,无论何时提交表单/数据,该值都会增加。
现在我该如何实现呢?
我想到了以下方法,但想到了 2 个问题:
First use select query to get the last used id/number. Then add +1 to it.**
问题 1:
为此,我必须进行 2 次查询,1 次用于选择,1 次用于更新,但我认为还有比这更好的方法吗?
问题 2:
如果成百上千的多个用户同时提交表单怎么办?如何确保它是唯一的并且不会导致数据库错误?
任何建议/想法都将受到高度赞赏。
【问题讨论】:
-
您是否被告知它必须是主键,或者您认为主键是保证唯一性的唯一方法?
-
@P.Salmon,是的,先生,它必须是主键。
-
@Zakir_SZH 请编辑您的问题以包含关于您为什么要为您的表创建如此复杂的主键的描述/解释?为什么您希望它成为主键,而不仅仅是具有 UNIQUE 索引的普通列?为什么不使用普通的
INT AUTO_INCREMENT PRIMARY KEY列,这是为表创建主键的常用方法? -
@Progman,好的,那么先生,即使是唯一的密钥,我如何在没有任何重复密钥/索引的机会的情况下实现这一目标?
标签: php mysql unique primary-key