如何更改ID从去年最高的ID与现有的MySQL数据表来自动增量?
-
26-09-2019 - |
题
我好不容易才从SQL Server的一个相当大的数据库迁移到MySQL。我在迁移过程中没有设置主键自动递增,因为表基于ID作为主键这是在其它表的外键具有关系。
现在添加新记录我要改变的主键中的所有表“ID”列是自动增量,但在每个表中的id列的最后一个最高号开始。
什么是做到这一点不失关系,我已经有最好的方法是什么?
UPDATE:试图添加自动增量给我此错误:
ERROR 1067: Invalid default value for 'id'
SQL Statement:
ALTER TABLE `skandium`.`brands` CHANGE COLUMN `id` `id` INT(11) NOT NULL DEFAULT '0' AUTO_INCREMENT
ERROR 1050: Table 'brands' already exists
SQL Statement:
CREATE TABLE `brands` (
`id` int(11) NOT NULL DEFAULT '0',
`brand` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
解决方案
只需添加您需要的列自动递增。它不会影响现有行。它将开始与下一个可用的值。
请注意,一列是自动递增的手段只是如果你不分配一个值给它一个将MySQL的加入。如果不想什么特别的事情发生,以提供你可以做这样明确的值。所以,你可以从一开始就设置这些列自动递增的权利。
通过自动递增列不能有显式默认值。
测试
不隶属于 StackOverflow