【问题标题】:Alter MySQL column with values to auto increment将具有值的 MySQL 列更改为自动递增
【发布时间】:2010-02-18 15:34:47
【问题描述】:

我很难理解标题,所以让我解释一下。

我正在做的是使用 jQuery UI 在页面上创建可排序的列表元素。提交订单后,php 会根据它们的顺序为列表元素分配一个递增值,删除现有的 id 列,创建一个新的 id 列并插入每个列表元素值 WHERE title=x。这会创建正确的 ID 顺序,并且工作正常。

我现在想做的是将列更改为 auto_increment,这样如果我插入一个新条目,就会自动分配 id,比 php 脚本生成的最大数字高一个数字。我没有使用任何外键或任何东西,只是这个简单的表。

这可能吗?

【问题讨论】:

  • 问题可能不仅在于它是否可能或可行,还在于它是否合理甚至更可取。我不确定“删除现有的 id 列,创建一个新的 id 列并插入每个列表元素值 WHERE title=x”部分。 (我有点怀疑这是一个好主意,但也许这只是我......)你能详细说明一下吗?

标签: php jquery mysql


【解决方案1】:

我的错误,我看错了你的问题。您不想使用数据库本身根据您的排序顺序提供编号。但是,您可以使用 SQL 查询本身来返回递增字段。一秒钟,我会更新该信息...

好的,就是这样:

你需要使用一个变量,比如 设置@n=0;选择 @n:=@n+1 为 'n', col1, col2 从表

但是,我强烈建议您尽可能在 php 代码中创建编号。

----------------原帖----------------

使用 phpmyadmin 很容易。如果您无法安装,请告诉我,我会挖掘必要的 SQL。

见鬼,这是 SQL:

alter table t1 modify f1 int(4) auto_increment 更改表 tbl auto_increment = xxx; //将 xxx 更改为它应该使用的下一个 id

您可能需要根据您现有的数据集以相反的顺序运行它们,如果您不将 auto_increment 的值更改为尚未使用的值,它将无法添加 auto_increment。

【讨论】:

  • 我不确定我的措辞是否正确,我会再试一次。谢谢你的帮助!
猜你喜欢
  • 2017-04-21
  • 1970-01-01
  • 2021-03-03
  • 2012-12-28
  • 2013-03-22
  • 2011-12-29
  • 2013-11-07
  • 2011-02-18
相关资源
最近更新 更多