MySQL是一款常用的關系型數據庫系統,它支持創建數據表并在其中存儲數據。在創建數據表時,我們可以為數據表中的每個字段指定默認值,這個默認值將在沒有指定字段值時自動填充到相應的字段中。
CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, age INT DEFAULT 18, email VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
在上面的示例中,我們創建了一個名為“users”的數據表,其中包含了id、name、age、email、created_at和updated_at這六個字段。其中,id和name字段是必須要填寫值的,age字段給定了默認值18,email、created_at和updated_at的默認值則使用了MySQL提供的內置函數。其中,created_at字段的默認值為當前時間戳,updated_at字段的默認值為當字段更新時的時間戳。
在實際的開發中,我們經常會遇到需要使用默認值的情況。比如,在一個博客網站中,創建文章時需要指定一個作者id字段,但是如果用戶沒有指定作者id,則應該默認為當前登錄用戶的id值。
CREATE TABLE articles ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT, author_id INT DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
在上面的示例中,我們創建了一個名為“articles”的數據表,其中包含了id、title、content、author_id、created_at和updated_at這六個字段。其中,id、title、content、created_at和updated_at的含義和之前的示例相同。不同的是,此處的author_id給定了默認值NULL,這意味著如果用戶沒有指定作者id,則該字段將填充為NULL。在實際的開發中,我們可以在前端代碼中判斷作者id是否為空,如果為空則將其默認填充為當前登錄用戶的id。