背景
数据库oracle,当前需要给表里的某个字段修改为非空,且添加默认值
问题1:表里的部分数据的该字段为null,无法进行字段更改为非空
解决1:把null的都填上数据,再进行字段更改
问题2:没有可视化数据界面操作数据库,不知道字段是否为非空,或是否有默认值
解决2:使用下面的命令查询表的结构
SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' and owner='用户名'
查询出来的列名 NULLABLE 为可空字段,N :非空, Y:可空
列名 DATA_DEFAULT 为默认值字段
问题3:字段本身就为非空,但没有默认值,使用下面的语句更改字段是否会让字段变为可空
alter table 用户名.表名 modify(字段 default 默认值);
解决3:字段本身就为非空,经过上面的语句修改不会改变非空的属性