【问题标题】:phpMyAdmin database: ID #s are all zerophpMyAdmin 数据库:ID #s 都为零
【发布时间】:2016-08-20 23:57:14
【问题描述】:

我在 phpMyAdmin 中有一个数据库表,其中包含: [id、用户名、密码、电子邮件、名字、姓氏、lastlogin] 工作得很好。问题是它没有给每个用户一个 id 号(它们都是零,我想要 1,2,3...)。每次用户将他们的信息从表单提交到数据库时,都应该为他们分配一个编号。第一个提交的人应该是 ID 1,第二个应该是 ID 2,依此类推。如何在 phpMyAdmin 中解决此问题? 谢谢你。

【问题讨论】:

  • id 字段设置为AUTO_INCREMENT???

标签: php phpmyadmin


【解决方案1】:

如果需要添加自动增量:

 ALTER TABLE `YOUR_TABLE` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT 

修复现有的id缺失问题

SET @count = 0;
UPDATE `YOUR_TABLE` SET `YOUR_TABLE`.`id` = @count:= @count + 1;

然后

ALTER TABLE `YOUR_TABLE` AUTO_INCREMENT = 1;

【讨论】:

    【解决方案2】:

    在 phpMyAdmin 中,选择您的表并转到“结构”选项卡。然后在您的 ID 字段的行上,选中“A_I”下的框以打开自动递增。

    要强制更新所有记录以使它们具有不同的 ID 号,请删除 ID 列,然后在启用递增的情况下再次添加它。

    确保在“索引”下选择“主键”,否则会引发错误。

    【讨论】:

    • 如果您使用外键,请不要这样做
    • @dagon 好吧,现在键都是 0,所以外键无论如何都坏了。
    • 是的,但除非您首先运行DROP FOREIGN KEY,否则您可能会生成一些有趣的错误消息
    • 我已经更新了我的答案。确保将 ID 设置为主键。
    【解决方案3】:

    AUTO_INCREMENT 应该可以很好地解决您的问题。 Dagon 发布了一个关于如何改变你的桌子的解决方案,它应该可以完美地工作。如果您希望再次创建表但使用 AUTO_INCREMENT,则可以使用以下代码:

    CREATE TABLE myTable (
      id INT NOT NULL AUTO_INCREMENT,
      username ..., 
      password ...,
      email ..., 
      firstname ..., 
      lastname ..., 
      lastlogin ...,
      PRIMARY KEY (id)
    )
    // '...' represents the datatypes and other characteristics of the
    // specific columns/fields
    

    如果这对你有用,请告诉我!

    【讨论】:

    • 谢谢大家...现在就尝试解决这个问题!....我尝试了自动增量,但出现错误(#1075 表定义不正确,只能有一个自动列并且它必须被定义为键)我很可能只是再次重做表格,看看会发生什么。
    • @HLD 好的,如果重做如上所示的表格,请告诉我
    • @HLD 酷!请接受(绿色复选标记)您认为最能回答您的问题的答案,以便将来的用户在阅读此页面时可以知道。
    猜你喜欢
    • 2011-02-05
    • 2016-01-04
    • 2017-08-17
    • 2015-06-25
    • 2015-12-31
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多