Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ubah tabel untuk mengubah nilai default kolom

Keyakinan Anda tentang apa yang akan terjadi tidak benar. Menetapkan nilai default untuk kolom tidak akan memengaruhi data yang ada di tabel.

Saya membuat tabel dengan kolom col2 yang tidak memiliki nilai default

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

Jika saya kemudian mengubah tabel untuk menetapkan nilai default, baris yang ada tidak akan berubah

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

Bahkan jika saya mengubah default lagi, tetap tidak akan ada perubahan pada baris yang ada

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. Saya tidak mengerti Collation? (Mysql, RDBMS, Kumpulan karakter)

  2. Tampilkan nama semua batasan untuk tabel di Oracle SQL

  3. Kata kunci 'LANJUTKAN' di Oracle 10g PL/SQL

  4. Mencegah Drop Table Pada Skema Target Di Oracle Streams

  5. Menggunakan fungsi Max() untuk memilih nilai grup