MySQL是一款常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在開發(fā)實踐中我們常常需要使用序列號存儲數(shù)據(jù)。那么,MySQL如何生成序列號呢?下面是一些常用的語句。
-- 方式一:使用自增列 CREATE TABLE `table_name` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 插入數(shù)據(jù)時不用指定id INSERT INTO table_name (`name`) VALUES ('name1'), ('name2'); -- 方式二:使用觸發(fā)器 DELIMITER // CREATE TRIGGER trg_insert_table_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN DECLARE seq INT DEFAULT 0; SELECT MAX(id) + 1 INTO seq FROM table_name; IF seq IS NULL THEN SET seq = 1; END IF; SET NEW.id = seq; END; // DELIMITER ; -- 插入數(shù)據(jù)時不用指定id INSERT INTO table_name (`id`, `name`) VALUES (NULL, 'name1'), (NULL, 'name2');
使用自增列生成序列號是最常用的方式,MySQL會自動為每個插入的行分配一個遞增的整數(shù)值。使用觸發(fā)器生成序列號的方式相對復(fù)雜,但也可用于自定義序列號生成規(guī)則。