我明白在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)的东西,那么我会在自动增量时使用它。希望我足够清楚。
谢谢: - )