1. 程式人生 > 實用技巧 >MySQL教程49-MySQL預設值

MySQL教程49-MySQL預設值

預設值(Default)的完整稱呼是“預設值約束(Default Constraint)”,用來指定某列的預設值。在表中插入一條新記錄時,如果沒有為某個欄位賦值,系統就會自動為這個欄位插入預設值。

例如,員工資訊表中,部門位置在北京的較多,那麼部門位置就可以預設為“北京”,系統就會自動為這個欄位賦值為“北京”。

預設值約束通常用在已經設定了非空約束的列,這樣能夠防止資料表在錄入資料時出現錯誤。

在建立表時設定預設值約束

建立表時可以使用DEFAULT關鍵字設定預設值約束,具體的語法格式如下:

<欄位名> <
資料型別> DEFAULT <預設值>;

其中,“預設值”為該欄位設定的預設值,如果是字元型別的,要用單引號括起來。

例 1

建立資料表 tb_dept3,指定部門位置預設為 '北京',SQL 語句和執行結果如下所示。

mysql> create table if not exists tb_dept3
    -> (
    -> id int(11) primary key auto_increment,
    -> name varchar(25),
    -> location varchar(25) default
'北京' -> ); Query OK, 0 rows affected, 1 warning (0.69 sec)

以上語句執行成功之後,表 tb_dept3 上的欄位 location 擁有了一個預設值 '北京',新插入的記錄如果沒有指定部門位置,則預設都為 '北京'。

注意:在建立表時為列新增預設值,可以一次為多個列新增預設值,需要注意不同列的資料型別。

在修改表時新增預設值約束

ALTER TABLE <資料表名> ALTER [COLUMN] <列名> SET DEFAULT <預設值>;

例 2

修改資料表 tb_dept3,將部門位置的預設值修改為 '青島',SQL 語句和執行結果如下所示。

刪除預設值約束

當一個表中的列不需要設定預設值時,就需要從表中將其刪除。

修改表時刪除預設值約束的語法格式如下:

ALTER TABLE <表名> ALTER [COLUMN] <列名> DROP DEFAULT;

例 3

修改資料表 tb_dept3,將部門位置的預設值約束刪除,SQL 語句和執行結果如下所示。