0

谁能帮我..

我创建了一个没有自动递增 Sl.no(序列号)的表,但现在我想自动递增它。我该怎么做。??

4

4 回答 4

0

你需要改变它

alter table document modify column serial_id int(10) NOT NULL auto_increment
于 2012-06-08T06:43:27.320 回答
0
ALTER TABLE
        mytable
MODIFY  id INT NOT NULL AUTO_INCREMENT;
于 2012-06-08T06:43:48.020 回答
0

看看这个文档页面 - ALTER TABLE Syntax。首先,您的字段必须是整数和主键。

您可以使用这样的查询 -

-- add AUTO_INCREMENT:
ALTER TABLE table
  CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT;

-- add primary key and AUTO_INCREMENT:
ALTER TABLE table
  CHANGE COLUMN id id INT(11) NOT NULL AUTO_INCREMENT,
  ADD PRIMARY KEY (id);

此外,您可以使用 MySQL GUI 工具之一,例如 - dbForge Studio for MySQL(免费快速版)中的表编辑器。

于 2012-06-08T06:45:35.527 回答
0

您的序列号列似乎不是您的表的主键。MySQL 不允许将 AUTO_INCREMENT 属性分配给不是您的主键的列。

我可以看到两种可能的行动方案:

  • 从任何其他列中删除主键属性并将其添加到您的序列号。这仅在序列号列中的值是唯一的情况下才有效。根据表的设置方式以及序列号字段的格式,这可能会对表上后续查询的性能产生不利影响。

    ALTER TABLE [表] 删除主键;

    ALTER TABLE [table] ADD [fieldname] [integer type] NOT NULL AUTO_INCREMENT PRIMARY KEY;

  • 您可以通过选择表中序列号列的最后一个(最高)值(以编程方式)并在插入之前手动(也以编程方式)递增它,然后简单地将其与您的其余部分一起插入,以编程方式伪造自动增量(新纪录。

于 2012-06-08T07:11:33.673 回答