MySQL建表時,一般都會使用id做為主鍵。而id的自增就成為了MySQL建表時一個特別常見的需求。
在MySQL中,id的自增是通過AUTO_INCREMENT來實現(xiàn)的。這樣做可以避免在插入數(shù)據(jù)時每次都需要手動指定id,可以減輕開發(fā)者的負擔。
在建表時,我們可以這樣定義id字段:
CREATE TABLE `example` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
上述代碼中,我們通過AUTO_INCREMENT關(guān)鍵字來實現(xiàn)id的自增。這里的UNSIGNED表示id不帶符號,而NOT NULL則表示id字段不允許為空。
需要注意的是,當我們使用AUTO_INCREMENT時,如果數(shù)據(jù)表的ID達到了最大值,那么再次插入數(shù)據(jù)時會出現(xiàn)錯誤。同時,刪除數(shù)據(jù)表中的記錄并不會減小AUTO_INCREMENT的值,也就是說,即使將表中所有記錄刪除以后再重新插入,也會從上次最大的ID開始自增。
為了保證數(shù)據(jù)表的完整性,我們應(yīng)該使用一些工具和策略來避免ID的溢出。常見的解決辦法是使用BIGINT作為ID的數(shù)據(jù)類型,或者使用不同的算法來生成唯一ID。
上一篇mysql 快速刪除歷史
下一篇mySql建表時字段編碼