2010-02-18 76 views
0

我对标题有些困难,所以让我解释一下。改变MySQL列的值以自动增加

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

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

这可能吗?

+0

这个问题可能不仅仅是可能还是可行,而且如果它是合理的或甚至是可取的。我不确定“删除现有的id列,创建一个新的id列并插入每个列表元素值WHERE title = x”部分。 (我以某种方式怀疑这是一个好主意,但也许这只是我......)你能详细说明一下吗? – VolkerK 2010-02-18 15:43:40

回答

1

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

好了,那就是:

你需要使用一个变量一样 集@ N = 0;选择 @n:= @ N + 1为“N”, COL1,COL2 从 表

然而,我强烈建议,如果可能的话,你只需要创建一个编号在你的PHP代码。

----------------原贴----------------

这是与phpMyAdmin很容易。让我知道如果你无法安装,我会挖掘必要的SQL。

所有赫克,这里是SQL:

ALTER TABLE T1修改F1 INT(4)的auto_increment ALTER TABLE TBL AUTO_INCREMENT = XXX; //将xxx改为它应该使用的下一个ID

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

+0

我不确定我是否恰当地措辞,我会再试一次。感谢您的帮助! – 2010-02-19 01:09:20