Oracle
 sql >> база данни >  >> RDS >> Oracle

Променете таблицата, за да промените стойността по подразбиране на колоната

Вярата ви за това какво ще се случи не е вярна. Задаването на стойност по подразбиране за колона няма да засегне съществуващите данни в таблицата.

Създавам таблица с колона 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да обработваме изключенията to_date в оператор SELECT, за да игнорирате тези редове?

  2. как да изберете списък с 10 000 уникални идентификатори от двойни в oracle SQL

  3. 2 функции за получаване на годината от дата в Oracle

  4. Каква е разликата между прецизност и мащаб?

  5. Как да извлека само стойност на датата от полето за дата в Oracle?