A表到B表数据迁移,B表字段比A多且都为非空,sql怎么写?

临时表A 字段有a,b,c
业务表B 字段有a,b,c,d 都是非空
我insert into A(a,b,c) select a,b,c form B 报d不能为非空
这种情况sql怎么写?


insert into A(a,b,c,d) select a,b,c,1 form B

要么insert语句里给d一个值,要么建表的时候给d一个默认值,要么d设置成允许空