如何在创建表后自动增加mysql中的特定列

时间:2012-06-08 06:39:00

标签: mysql

任何人都可以帮助我..

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

4 个答案:

答案 0 :(得分:0)

你需要改变它

alter table document modify column serial_id int(10) NOT NULL auto_increment

答案 1 :(得分:0)

ALTER TABLE
        mytable
MODIFY  id INT NOT NULL AUTO_INCREMENT;

答案 2 :(得分: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(免费快递版)中的表格编辑器。

答案 3 :(得分:0)

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

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

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

    ALTER TABLE [table] DROP PRIMARY KEY;

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

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