2013-11-28 137 views
0

我有一個列與REAL數據類型,我試圖寫一個語句來將默認值更改爲4.但是,當我使用select *語句來加倍檢查,列仍然是空的。改變表 - 改變列的默認值

ALTER TABLE recipes 
MODIFY NumberOfServings DEFAULT '4'; 
+0

'ALTER'不會更新您的表格。它僅用於插入的行。 –

回答

1

DEFAULT值用於INSERT時間。當您不在INSERT語句中爲該列提供值時,它會給出一個默認值以供插入。

您可能需要更新表,讓所有的NULL值由給定的值代替:

UPDATE recipes SET NumberOfServings=4 WHERE NumberOfServings IS NULL; 

你也可以指定值時,該列是在查詢時NULL使用。 這可以通過使用NVL函數來完成:當你插入新記錄到表

SELECT NVL(NumberOfServings,4) FROM recipes; 

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm

+0

我想改變它,所以當我使用select *語句時,整個列中的每個條目都是4 – user2923395

+0

在這種情況下,您可以使用上面的UPDATE語句 – arieli

0

默認值僅適用。它不會更新表中的任何現有值。爲什麼用引號括起數字值?