sql >> Databáze >  >> RDS >> Oracle

Změňte tabulku pro úpravu výchozí hodnoty sloupce

Vaše přesvědčení o tom, co se stane, není správné. Nastavení výchozí hodnoty pro sloupec neovlivní existující data v tabulce.

Vytvořím tabulku se sloupcem col2 který nemá žádnou výchozí hodnotu

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

Pokud poté upravím tabulku tak, aby nastavila výchozí hodnotu, nic na existujících řádcích se nezmění

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

I když následně znovu změním výchozí nastavení, stále nedojde ke změně stávajících řádků

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. Jak načíst komentář databáze PostgreSQL?

  2. Oracle:existuje nástroj pro sledování dotazů, jako je Profiler pro server SQL?

  3. Jak vypočítat rozdíl v hodinách (desetinně) mezi dvěma daty na serveru SQL?

  4. PostgreSQL 11:Recenzenti záplat pro rozdělování záplat