我正在尝试在mysql数据库中创建一个自动递增1的列,但是从0-Z开始然后滚动。
例如 000,001,002,...,009,00A,00B,...,00Z,010,...,0ZZ,...,100。
我想让数据库通过自动递增字段创建列。
我的想法是:
我希望有一些优雅的东西可以让它像内置的机制一样,我只是不知道。我对存储过程/触发器一无所知,因此非常感谢您的帮助。我认为最简单的方法是为字符设置一个查找表,当到达第36行时,它会重置为0,然后有一个进位到行N-1。
答案 0 :(得分:2)
根据您的意见,我建议您执行以下操作:
使用常规整数auto_increment列作为行的主键,然后使用varchar类型的列或其中一种* text类型(取决于您的mysql服务器版本和数据存储要求)来存储您的“标识符”客户使用。
可以使用触发器自动生成标识符。
如果您要根据标识符进行查找(也就是说用户输入标识符以“跳转到”某条记录),您将需要该列的索引。
答案 1 :(得分:2)
您可以使用存储过程生成自定义自动增量值,如下所述:
http://en.latindevelopers.com/ivancp/2012/custom-auto-increment-values/
您将获得以下密钥:
SELECT * FROM custom_autonums;
+----+------------+------------+
| id | seq_1 | seq_2 |
+----+------------+------------+
| 4 | 001-000001 | DBA-000001 |
| 5 | 001-000002 | DBA-000002 |
| 6 | 001-000003 | DBA-000003 |
| 7 | 001-000676 | DBA-000004 |
| 8 | 001-000677 | DBA-000005 |
| 9 | 001-000678 | DBA-000006 |
但是你可以修改存储过程来生成你的模式:000,001,002,...,009,00A,00B,...,00Z,010,...,0ZZ,...,100