sql >> Database teknologi >  >> RDS >> Oracle

Skift tabel for at ændre standardværdien for kolonnen

Din tro på, hvad der vil ske, er ikke korrekt. Indstilling af en standardværdi for en kolonne vil ikke påvirke de eksisterende data i tabellen.

Jeg opretter en tabel med en kolonne col2 der ikke har nogen standardværdi

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

Hvis jeg derefter ændrer tabellen til at indstille en standardværdi, vil intet ved de eksisterende rækker ændre sig

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

Selvom jeg efterfølgende ændrer standard igen, vil der stadig ikke ske nogen ændring af de eksisterende rækker

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. Sådan listes alle lagrede procedurer i MariaDB

  2. SQL-OPDATERING:Lær, hvordan du opdaterer værdier i en tabel

  3. Slut dig til os i Las Vegas til SQLintersection og spar $100

  4. Hvordan udlæser man dagnummer uge og ugedag ved brug af Oracle SQL?