我知道在mysql中可以将varchar转换为十进制(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)这样的东西,那么我会用它来自动递增。希望我够清楚。
谢谢:-)
暂无答案!
目前还没有任何答案,快来回答吧!