如何解决Oracle Number列上的默认值
| 我在名为SampleTable的表上有一个数字列,其定义如下 身份证号码(10)默认1 我在不同的表(SomeTable)和UPDATE EACH ROW(Trigger-:New.ID)上有一个触发器,该触发器将来自该表(SomeTable)的值插入SampleTable中。 有时,SomeTable的ID可以为NULL,在我的情况下,我想让SampleTable插入默认值1。 但是它将在表上插入NULL(空格)。 我是PL / SQL的新手,因此非常感谢您的帮助。解决方法
仅当未在插入中指定列时才使用列默认值:
insert into sampletable (othercol) values (\'x\'); -- ID will default to 1 here
如果已指定该列,即使已传入NULL也不会使用它:
insert into sampletable (othercol,id)
values (\'x\',null); -- ID will be set to null here
为了解决这个问题,您的触发器可以执行以下操作:
insert into sampletable (othercol,coalesce(:new.id,1));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。