MySQL是一種流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)表設(shè)計(jì)時(shí),我們經(jīng)常需要為列添加一些額外的屬性,例如自增、主鍵、外鍵等。這些屬性可以在“extra”字段中進(jìn)行定義。
下面是一個(gè)示例代碼片段,用于創(chuàng)建一個(gè)具有自增列、主鍵和創(chuàng)建時(shí)間的用戶(hù)表:
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1;
在上面的代碼中,“extra”部分沒(méi)有定義任何值,因?yàn)槲覀儧](méi)有需要添加的附加屬性。但是,你也可以在“extra”字段中定義其他屬性,例如:
- DEFAULT 'value':給列設(shè)置默認(rèn)值。
- ON UPDATE CURRENT_TIMESTAMP:每次更新數(shù)據(jù)行時(shí),設(shè)置當(dāng)前時(shí)間戳。
- COMMENT 'text':為列添加注釋。
例如,在下面的代碼片段中,我們?cè)谟脩?hù)表中為“created_at”列添加了一個(gè)注釋?zhuān)?/p>
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'The date and time this user was created', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1;
通過(guò)使用“extra”字段,我們可以輕松地為數(shù)據(jù)庫(kù)表中的列添加附加屬性,從而提高我們的數(shù)據(jù)庫(kù)設(shè)計(jì)的靈活性。