【问题标题】:Auto increment in phpmyadminphpmyadmin 中的自动增量
【发布时间】:2011-08-05 15:40:20
【问题描述】:

我有一个使用 PHP、MySQL 和 phpMyAdmin 的现有数据库。

当用户成为我网站的会员时,我需要系统使用五位数字为他们创建一个唯一的会员编号。例如 83773。我想这就像生成一个随机密码,除了我只想要我的成员的数字。此 ID 号必须对每个成员都是唯一的。

是否可以在我的用户表中将主键设置为 auto_increment 并将其设置为从 10000 开始,然后每次成员注册时自动递增?

另外,主键 ID 号是否有上限?

这是使用主键 ID 号作为会员号的可靠且安全的方式吗?

【问题讨论】:

标签: php phpmyadmin


【解决方案1】:

在 phpMyAdmin 中,如果您在表格中设置一个字段自动递增,然后插入一行并将该字段的值设置为 10000,它将从那里继续。

【讨论】:

    【解决方案2】:

    在 phpMyAdmin 中,导航到有问题的表并单击“操作”选项卡。在左侧的表选项下,您可以设置当前的 AUTO_INCREMENT 值。

    【讨论】:

    • 当我这样做时,关于添加 auto_increment 的唯一两个选项是“将表移动到”或“将表复制到”。我既不想移动也不想复制表格,只需添加 auto_increment。到底是怎么回事??我正在使用 MySQL v5.6。
    • @oldboy 我和你一样。也许他们在较新版本的 XAMPP PhpMyAdmin 中删除了该功能
    【解决方案3】:

    只需运行一个简单的 MySQL 查询并将自动增量编号设置为您想要的任何值。

    ALTER TABLE `table_name` AUTO_INCREMENT=10000
    

    就最大值而言,据我所知,没有一个,也没有办法限制这样的数量。

    将 id 编号设置为主键,自动递增 int 是非常安全且常见的做法。还有一些替代方法,例如使用 PHP 以特定格式为您生成会员编号,然后在插入之前检查该编号不存在,但是对于 我个人,我会使用主 id auto_inc 值.

    【讨论】:

      【解决方案4】:

      您不能设置最大值(除了选择不能容纳大数字的数据类型,但没有一个数据类型具有您要求的限制)。您可以在插入后使用 LAST_INSERT_ID() 检查以获取新创建成员的 id,如果它太大,请在您的应用程序代码中处理它(例如,删除并拒绝该成员)。

      为什么要设置上限?

      【讨论】:

        【解决方案5】:

        有一些可能的步骤来启用列的自动递增。我猜 phpMyAdmin 版本是 3.5.5 但不确定。

        点击表格 > 结构标签 > 在操作下 点击Primary(设置为primary), 点击弹出窗口中的更改,向左滚动并选中A_I。还要确保您为 Default

        选择了 None

        【讨论】:

        • 由于自动增量功能已从“操作”选项卡中删除,现在看来这就是实现它的方法。谢谢,@AmitKB。
        • 但是当我尝试时,我得到了这个错误:Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
        • 信息很清楚,您可能试图拥有多个自动列。
        • 遇到了类似的问题,这解决了我的问题
        • 哇,这么简单。为什么没有人提到这个?我花了这么长时间才找到这样的答案。迄今为止最好的答案。
        【解决方案6】:
        1. 在表格的“结构”标签中
        2. 点击你想要auto_increment变量的铅笔
        3. 在“额外”选项卡下选择“auto_increment”
        4. 然后转到表格的“操作”标签
        5. 在“表选项”下 -> auto_increment 类型 -> 10000

        【讨论】:

          【解决方案7】:

          @AmitKB,您的程序是正确的。虽然这个错误

          查询错误:#1075 - 表定义不正确;只能有一个自动列,并且必须定义为一个键

          可以通过首先将字段标记为键来解决(使用带有标签主要的键图标),除非您有其他键,否则它可能不起作用。

          【讨论】:

          • 我已经很久没有玩过phpMyAdmin了,我忘了怎么做。感谢您修复此次要问题。它对我有用。
          【解决方案8】:

          这是由于 wp_termswp_termmetawp_term_taxonomy 表的所有 ID 未设置为 AUTO_INCREMENT

          要做到这一点去phpmyadmin,点击关注数据库,wp_terms表,点击结构选项卡,在右侧你会看到一个名为A_I(AUTO_INCREMENT)的选项卡,检查并保存(你这样做只是为了第一个选项,在wp_term 的情况下,您只是为term_id 这样做。

          wp_termmetawp_term_taxonomy 执行相同操作,即可解决问题。

          【讨论】:

          • 您似乎认为 OP 正在使用 WordPress,您从哪里找到该信息?我在问题中找不到任何对 WP 的引用。
          【解决方案9】:

          (a)只需单击您的数据库,选择您的表。点击“操作”。在“表选项”部分下,将 AUTO_INCREMENT 值更改为您想要的值,在这种情况下:10000 单击“开始”。 (见附图)

          (b)或者,您可以在选择表后在 SQL 选项卡下运行 SQL 命令。只需输入“ALTER TABLE table_name AUTO_INCREMENT = 10000;”然后单击“开始”。而已!! SETTING AUTO INCREMENT VALUE image(a)

          SETTING AUTO INCREMENT VALUE image(B)

          【讨论】:

            【解决方案10】:

            在最新的 phpmyadmin 上执行此操作的最简单方法是使用以下命令;

            ALTER TABLE `table_name` ADD `col_name` INT(1) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`col_name`);
            

            【讨论】:

              猜你喜欢
              • 2017-10-24
              • 2015-02-09
              • 2011-03-02
              • 1970-01-01
              • 2013-07-06
              • 1970-01-01
              • 2019-10-24
              • 2011-05-19
              • 1970-01-01
              相关资源
              最近更新 更多