MySQL使用65位数的varchar生成唯一主键

时间:2018-04-20 06:11:28

标签: mysql casting varchar

我明白在MySQL中我们可以将varchar转换为Decimal(65,0)。因此,在插入记录时创建主键值我正在使用下面的查询。

INSERT INTO users (USERID, UNIQUECODE) VALUES(
(SELECT (COALESCE(MAX(CAST(USERID AS DECIMAL(65, 0))), 1) + 1) AS NEXTID FROM (SELECT * FROM users) AS myusers)
, 'NEW 1')

这正如我所料。现在我可以拥有最多65位数的主键。 任何人都可以告诉我,使用此查询有什么问题吗? 还是有更好的方法吗?

我的要求是拥有一个超过50位的主键字段。 BIGINT(20)的限制是我在这里无法使用的问题。 如果有类似BIGINT(50)的东西,那么我会在自动增量时使用它。希望我足够清楚。

谢谢: - )

0 个答案:

没有答案