谁能帮我..
我创建了一个没有自动递增 Sl.no(序列号)的表,但现在我想自动递增它。我该怎么做。??
你需要改变它
alter table document modify column serial_id int(10) NOT NULL auto_increment
ALTER TABLE
mytable
MODIFY id INT NOT NULL AUTO_INCREMENT;
看看这个文档页面 - 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(免费快速版)中的表编辑器。
您的序列号列似乎不是您的表的主键。MySQL 不允许将 AUTO_INCREMENT 属性分配给不是您的主键的列。
我可以看到两种可能的行动方案:
从任何其他列中删除主键属性并将其添加到您的序列号。这仅在序列号列中的值是唯一的情况下才有效。根据表的设置方式以及序列号字段的格式,这可能会对表上后续查询的性能产生不利影响。
ALTER TABLE [表] 删除主键;
ALTER TABLE [table] ADD [fieldname] [integer type] NOT NULL AUTO_INCREMENT PRIMARY KEY;
您可以通过选择表中序列号列的最后一个(最高)值(以编程方式)并在插入之前手动(也以编程方式)递增它,然后简单地将其与您的其余部分一起插入,以编程方式伪造自动增量(新纪录。