Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thay đổi bảng để sửa đổi giá trị mặc định của cột

Niềm tin của bạn về những gì sẽ xảy ra là không đúng. Đặt giá trị mặc định cho một cột sẽ không ảnh hưởng đến dữ liệu hiện có trong bảng.

Tôi tạo một bảng với một cột col2 không có giá trị mặc định

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

Sau đó, nếu tôi thay đổi bảng để đặt giá trị mặc định, thì không có gì về các hàng hiện có sẽ thay đổi

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

Ngay cả khi tôi thay đổi lại mặc định sau đó, vẫn sẽ không có thay đổi nào đối với các hàng hiện có

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. Làm thế nào để gửi email bằng Pl / sql

  2. Cách chạy tập lệnh SQL Plus trong PowerShell

  3. Sử dụng Tên dịch vụ Oracle với SQLAlchemy

  4. Hiểu sự khác biệt giữa Bảng và API Giao dịch

  5. Oracle 12.2.0.1 sắp ra mắt vào năm 2016