MySQL是一款非常流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了豐富的特性和靈活的配置選項(xiàng),其中之一就是默認(rèn)值設(shè)置。
在MySQL中,我們可以使用DEFAULT關(guān)鍵字指定默認(rèn)值。如果不為某個(gè)列指定任何值,那么就會(huì)使用該列的默認(rèn)值。默認(rèn)值可以設(shè)置為字面量或表達(dá)式。在創(chuàng)建表時(shí),可以在列定義中使用DEFAULT關(guān)鍵字指定默認(rèn)值:
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) DEFAULT 'Unknown', age INT DEFAULT 18, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
在上面的例子中,如果不為name列和age列指定值,那么它們分別會(huì)使用字符串'Unknown'和整數(shù)18作為默認(rèn)值。而如果不為created_at列指定值,那么它會(huì)使用當(dāng)前時(shí)間作為默認(rèn)值。
默認(rèn)值還可以在ALTER TABLE語(yǔ)句中進(jìn)行修改:
ALTER TABLE my_table ALTER COLUMN name SET DEFAULT 'New Default Value';
在上面的例子中,我們將name列的默認(rèn)值修改為'New Default Value'。
需要注意的是,默認(rèn)值只用于INSERT語(yǔ)句中,而不用于UPDATE語(yǔ)句中。如果我們需要在INSERT和UPDATE語(yǔ)句中都使用默認(rèn)值,可以使用TRIGGER。
如果想要查詢默認(rèn)值,可以使用SHOW CREATE TABLE語(yǔ)句:
SHOW CREATE TABLE my_table;
在結(jié)果中,可以找到DEFAULT關(guān)鍵字的定義:
CREATE TABLE `my_table` ( `id` int(11) NOT NULL, `name` varchar(50) DEFAULT 'Unknown', `age` int(11) DEFAULT '18', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
通過(guò)這種方式,我們可以方便地了解列的默認(rèn)值,并進(jìn)行修改。