我有一个使用PHP,MySQL和phpMyAdmin的现有数据库。
当用户成为我的网站的会员时,我需要系统使用五位数的数字为他们创建一个唯一的会员号。例如:83773。我想这就像生成一个随机密码,只不过我只想为会员提供数字。该ID号对于每个成员必须是唯一的。
我是否可以在用户表中将主键设置为auto_increment并将其设置为从10000开始,然后在每次成员注册时自动递增?
另外,主键ID号是否有最大数量限制?
这是使用主键ID号作为会员号的可靠且安全的方法吗?
我有一个使用PHP,MySQL和phpMyAdmin的现有数据库。
当用户成为我的网站的会员时,我需要系统使用五位数的数字为他们创建一个唯一的会员号。例如:83773。我想这就像生成一个随机密码,只不过我只想为会员提供数字。该ID号对于每个成员必须是唯一的。
我是否可以在用户表中将主键设置为auto_increment并将其设置为从10000开始,然后在每次成员注册时自动递增?
另外,主键ID号是否有最大数量限制?
这是使用主键ID号作为会员号的可靠且安全的方法吗?
Answers:
有可能的步骤为列启用自动递增。我猜phpMyAdmin版本是3.5.5,但不确定。
单击表 > 结构选项卡>在操作下, 单击主要(设置为主要),在弹出窗口中单击更改,向左滚动并检查A_I。还要确保已为“ 默认”选择了“ 无 ”
Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
在phpMyAdmin中,导航到有问题的表,然后单击“操作”选项卡。在“表选项”下方的左侧,将允许您设置当前的AUTO_INCREMENT值。
@AmitKB,您的程序正确。虽然这个错误
查询错误:#1075-错误的表格定义;只能有一个自动列,并且必须将其定义为键
可以通过以下方法解决:首先将字段标记为键(使用带有标签primary的键图标),除非您有其他键,否则可能无法使用。
您不能设置最大值(除了选择一个不能容纳大数字的数据类型外,没有其他类型具有您要的限制)。您可以在插入后使用LAST_INSERT_ID()进行检查,以获取新创建的成员的ID,如果太大,请在您的应用程序代码中进行处理(例如,删除并拒绝该成员)。
为什么要上限?
这是由于wp_terms
,wp_termmeta
和wp_term_taxonomy
表,其中有他们所有的ID不是设置为AUTO_INCREMENT
为此,请转到phpmyadmin,在关注数据库,wp_terms
表上单击,然后在结构选项卡上单击。在右侧,您将看到一个名为的选项卡A_I(AUTO_INCREMENT)
,选中并保存(您仅对第一个选项执行此操作,如果wp_term
您选择了只为term_id
)。
用同样的方法wp_termmeta
,并wp_term_taxonomy
会解决这个问题。
(a)只需单击您的数据库,选择表。点击“操作”。在“表格选项”部分下,将AUTO_INCREMENT值更改为所需的值,在这种情况下:10000单击“执行”。(请参见所附图片)
(b)或者,选择表后,可以在“ SQL”选项卡下运行SQL命令。只需键入“ ALTER TABLE table_name AUTO_INCREMENT = 10000;”。然后点击“开始”。而已!! 设置自动增量值图像(a)