最近工作中遇到一些业务上的问题,最后查到原因就是:根据备份表还原时缺失默认值。
一般备份表都是这样操作:
create table xxx_240430 as
select * from xxx
这时备份表xxx_240430已经没有默认值了。
如果要还原表,这样操作的话:
drop table xxx;
create table xxx as
select * from xxx_240430
还原后的表xxx就没有默认值了,新增数据时就会存在问题。
另外,主键,唯一,外键,check约束,分区,索引以及列的默认值也不会带到新表。
避免发生这种情况,可以这样操作:
delete from xxx;
inser into xxx(column_1, column_2)
select column_1, column_2 from xxx_240430