2009-11-13 123 views
2

請注意下表。我想將新創建的BEST_SELLER列的默認值設置爲"N"
我該怎麼做呢?如何設置列的默認值?

Create Table Mystery 
(Book_Code Char(4) Primary Key, 
Title Varchar2(40), 
Publisher_Code Char(2), 
Price Number(4,2)) 
+1

國際海事組織這個問題的標題應該改變,以反映野獸的性質,爲後代。 – Dereleased 2009-11-13 18:06:19

+0

你在使用什麼SQL Server? – Murph 2009-11-13 18:20:26

+0

SQL PLUS。我已經創建了COLUMN BEST_SELLER ... – Michael 2009-11-13 18:22:54

回答

7

基本MySQL Alter Table命令

如果列不存在:

alter table Mystery add column BEST_SELLER enum('N','Y') default 'N'; 

,如果列上存在:

alter table Mystery alter column BEST_SELLER set default 'N'; 
0

如果添加的列的表是後創建你可以用alter語句做類似的事情。

alter

5

我加入,因爲你的迴應我的第一個回答的第二個答案。這個答案適用日期:

  1. 您正在使用Oracle,和
  2. 您已經創建的表,所以你需要使用「ALTER TABLE」語法。

隨函附上如下:

alter table 
    mystery 
modify 
    BEST_SELLER char(1) DEFAULT 'N' 

請修改類型char(1)到任何列實際上是。運行此查詢更正表後,您將需要發出第二個查詢,以更新現有的行,如:

UPDATE 
    mystery 
SET 
    BEST_SELLER = 'N' 
WHERE 
     BEST_SELLER = '' 
    OR BEST_SELLER IS NULL 

希望這有助於。

+1

那麼會填充現有的行嗎? – Murph 2009-11-13 18:23:25

+0

什麼都沒有,你需要發出一個通用的更新查詢,例如:UPDATE mystery SET BEST_SELLER ='N'WHERE BEST_SELLER =''或BEST_SELLER是NULL(這是基於我對MySQL語法的瞭解,儘管我認爲它是通用性足以承載oracle),但默認值應該在未來證明你在這種情況下。 – Dereleased 2009-11-13 18:30:03

+0

感謝您的工作! – Michael 2009-11-13 18:34:39