MySQL建表時(shí),可以定義列的默認(rèn)值,當(dāng)插入一個(gè)不帶該列的值時(shí),就會(huì)使用默認(rèn)值。此外,還可以定義一個(gè)默認(rèn)約束,它可以在新的行插入之前驗(yàn)證數(shù)據(jù)是否符合要求。
默認(rèn)約束可以用于各種數(shù)據(jù)類型的列,包括數(shù)字、字符和日期。下面是一個(gè)示例:
CREATE TABLE example ( id INT, name VARCHAR(50), email VARCHAR(50) DEFAULT 'noemail@example.com' );
在上述示例中,當(dāng)插入沒有提供email值時(shí),將會(huì)使用默認(rèn)值'noemail@example.com'。如果您定義了多個(gè)列的默認(rèn)約束,則MySQL將所有約束組合在一起,并一起驗(yàn)證所有默認(rèn)值。
除了上述情況之外,您還可以在建表時(shí)為列定義其他默認(rèn)約束條件。下面是一個(gè)更復(fù)雜的示例:
CREATE TABLE example ( id INT, name VARCHAR(50), email VARCHAR(50), created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
在上述示例中,我們?yōu)閮蓚€(gè)日期列定義了默認(rèn)約束條件。其中,created_date列將默認(rèn)值設(shè)置為當(dāng)前時(shí)間戳,即在新行插入時(shí),它將使用當(dāng)前的日期和時(shí)間作為默認(rèn)值。而updated_date列將使用CURRENT_TIMESTAMP ON UPDATE語句,這意味著每當(dāng)一行更新時(shí),它將自動(dòng)更新為當(dāng)前的日期和時(shí)間。
總之,MySQL的默認(rèn)約束條件是非常強(qiáng)大和靈活的,您可以在建表時(shí)輕松定義多種約束條件,并確保您的數(shù)據(jù)始終符合您的要求。