sql – 改变表来修改列的默认值
发布时间:2020-05-25 03:48:11 所属栏目:MsSql 来源:互联网
导读:我有一个要求,我们需要在数据库表中修改列的默认值.该表已经是数据库中的现有表,并且列的默认值为NULL. 现在,如果添加一个新的默认值给这个列,如果我是正确的,它会将列的所有现有NULL更新为新的DEFault值.有没有办法不这样做,但仍然在列上设置一个新的默认值.
|
我有一个要求,我们需要在数据库表中修改列的默认值.该表已经是数据库中的现有表,并且列的默认值为NULL.
任何帮助在此赞赏. 解决方法你对于会发生什么的信念是不正确的.设置列的默认值不会影响表中的现有数据.我创建一个没有默认值的列col2的表 SQL> create table foo(
2 col1 number primary key,3 col2 varchar2(10)
4 );
Table created.
SQL> insert into foo( col1 ) values (1);
1 row created.
SQL> insert into foo( col1 ) values (2);
1 row created.
SQL> insert into foo( col1 ) values (3);
1 row created.
SQL> select * from foo;
COL1 COL2
---------- ----------
1
2
3
如果我改变表来设置一个默认值,那么现有的行都不会改变 SQL> alter table foo
2 modify( col2 varchar2(10) default 'foo' );
Table altered.
SQL> select * from foo;
COL1 COL2
---------- ----------
1
2
3
SQL> insert into foo( col1 ) values (4);
1 row created.
SQL> select * from foo;
COL1 COL2
---------- ----------
1
2
3
4 foo
即使我以后再次更改默认值,现有行仍然没有更改 SQL> alter table foo
2 modify( col2 varchar2(10) default 'bar' );
Table altered.
SQL> select * from foo;
COL1 COL2
---------- ----------
1
2
3
4 foo
SQL> insert into foo( col1 ) values (5);
1 row created.
SQL> select * from foo;
COL1 COL2
---------- ----------
1
2
3
4 foo
5 bar (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
