任何人都可以帮助我..
我创建了一个没有自动递增Sl.no(序列号)的表,但现在我想自动递增它。我该怎么做。??
答案 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;
您可以通过选择表格中的序列号列的最后一个(最高)值(以编程方式)并在插入之前手动递增(也以编程方式)来伪造自动递增,然后只需插入它与你的(新)记录的其余部分一起。