MySQL8给已有表新增自增列赋初始值的问题
错误1:[22001][1138] Data truncation: Invalid use of NULL value
原因:
如果你xxx表已有数据,你是无法新增自增列的,需要中转一下。因为自增列需要是key。
解决:
- 第一步,给xxx表加上自增列,不要设置自增属性,否则会失败。
- 第二步:执行以下sql给xxx的自增列赋初值。
with cte as (
select row_number() over (order by createTime) as incre_id, <表中主键ID> from area_code
) update xxx ac set incre_id = (select incre_id from cte where <表中主键ID> = ac.<表中主键ID>) where incre_id is null;
-
第三步:设置自增列的额外的属性吧。例如:主键、非空等属性。
-
ok了,应该没有问题了
== 注意,以上是在mysql8.0版本上操作的==
引用
复制请注明出处,在世界中挣扎的灰太狼