在阅读Stackoverflow上的可能选项之后,我没有看到我正在考虑的确切案例的答案......
CASE:我有一个自动生成mysql连接模板的php系统。
为了使系统工作,我需要每个生成的模板在创建时分配一个唯一的6位整数。而不是乱搞随机发生器等...
A)我可以简单地在数据库中创建一个名为'pageid'的表,使用int(11)/ unique / autoincrement,起始值为100000,然后在模板创建过程中,只需在此表上执行插入操作,然后'select last_insert_id()'来拉取最后一个值,然后在创建模板时将其注入模板中? (换句话说,表的唯一功能是生成并吐出最后一个唯一ID。)
B)如果是这样,我应该关注使用这种方法的问题吗? (除了这意味着只能生成899,999个模板的限制 - 在这种情况下这不是问题)。
任何想法或更好的方法都赞赏...
答案 0 :(得分:0)
我可以简单地在数据库中创建一个名为'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个字节的存储空间,并且根据您的需要提供更合适的显示宽度。
如果是这样,我是否应该关注使用此方法? (除了这意味着只能生成899,999个模板的限制 - 在这种情况下这不是问题)。
您只需在templates
表中添加该列,并在插入新记录时自动分配id
。