首页 > 数据库 >MySQL8给已有表新增自增列赋初始值的问题

MySQL8给已有表新增自增列赋初始值的问题

时间:2023-03-30 12:15:05浏览次数:50  
标签:ac xxx MySQL8 初始值 增列 incre id

错误1:[22001][1138] Data truncation: Invalid use of NULL value

原因:

如果你xxx表已有数据,你是无法新增自增列的,需要中转一下。因为自增列需要是key。

解决:

  1. 第一步,给xxx表加上自增列,不要设置自增属性,否则会失败。
  2. 第二步:执行以下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;
  1. 第三步:设置自增列的额外的属性吧。例如:主键、非空等属性。

  2. ok了,应该没有问题了

== 注意,以上是在mysql8.0版本上操作的==

引用

function_row-number

标签:ac,xxx,MySQL8,初始值,增列,incre,id
From: https://www.cnblogs.com/XingXiaoMeng/p/17272084.html

相关文章