在阅读了Stackoverflow上的可能选项后,我看不到我正在考虑的确切情况的答案。。。
案例:我有一个php系统,可以自动生成mysql连接的模板。
为了让系统正常工作,我需要每个生成的模板在创建时都分配一个唯一的6位数整数。而不是扰乱随机发生器等…
A) 我可以简单地在数据库中创建一个名为"pageid"的表,其int(11)/unique/autoincrement起始值为100000,然后在模板创建过程中,简单地对该表执行插入,然后使用"select last_insert_id()"提取最后一个值,然后在创建模板时将其注入到模板中吗?(换句话说,表的唯一功能是生成并吐回最后一个唯一的id)。
B) 如果是的话,使用这种方法有什么问题需要我关心吗?(除此之外,这意味着只能生成89999个模板,这在本例中不是问题)。
任何想法或更好的方法都值得赞赏。。。
-
我可以简单地在数据库中创建一个名为"pageid"的表,其int(11)/unique/autoincrement起始值为100000,然后在模板创建过程中,简单地对该表执行插入,然后使用"select last_insert_id()"提取最后一个值,然后在创建模板时将其注入到模板中吗?(换句话说,表的唯一功能是生成并吐回最后一个唯一的id)。
是:
CREATE TABLE pages ( pageid MEDIUMINT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY ) AUTO_INCREMENT = 100000;
请注意,我使用
MEDIUMINT(6)
,因为它比INT
需要少1个字节的存储空间,并且具有更适合您需要的显示宽度。 -
如果是的话,使用这种方法有什么问题需要我关心吗?(除此之外,这意味着只能生成89999个模板,这在本例中不是问题)。
相反,您可以将该列放在
templates
表中,并在插入新记录时自动分配id
。