MySQL 序列(AUTO_INCREMENT)的使用示例
更新時間:2025年11月27日 08:16:38 作者:愚戲師
本文主要介紹了MySQL 序列(AUTO_INCREMENT)的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
核心基礎
- 本質:MySQL 無內(nèi)置序列類型,通過
AUTO_INCREMENT模擬自增數(shù)字序列; - 約束:一張表僅 1 個自增主鍵列,列類型為整數(shù)(INT/BIGINT/UNSIGNED INT);
- 特性:刪除數(shù)據(jù)后自增值不回退,手動修改易引發(fā)唯一性沖突。
一、AUTO_INCREMENT 基礎使用
1. 創(chuàng)建含自增列的表
CREATE TABLE insect (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(30) NOT NULL,
date DATE NOT NULL,
origin VARCHAR(30) NOT NULL
);
2. 插入數(shù)據(jù)(省略自增列值)
INSERT INTO insect (id,name,date,origin) VALUES (NULL,'housefly','2001-09-10','kitchen');
二、自增值獲取
| 場景 | 核心語句 / 方法 |
|---|---|
| 客戶端查剛插入值 | SELECT LAST_INSERT_ID(); |
| 客戶端查表當前值 | SHOW TABLE STATUS LIKE '表名';(看 Auto_increment 列) |
三、序列操作
1. 重置序列(謹慎:并發(fā)插入易混亂)
ALTER TABLE insect DROP id; ALTER TABLE insect ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (id);
2. 設置序列起始值
| 操作時機 | 語句示例 |
|---|---|
| 建表時指定 | CREATE TABLE insect (...) engine=innodb auto_increment=100 charset=utf8; |
| 建表后修改 | ALTER TABLE insect AUTO_INCREMENT = 100; |
四、擴展:自定義序列管理(批量 / 自定義幅度)
1. 建序列管理表
DROP TABLE IF EXISTS sequence;
CREATE TABLE sequence (
name VARCHAR(50) NOT NULL,
current_value INT NOT NULL,
increment INT NOT NULL DEFAULT 1,
PRIMARY KEY (name)
) ENGINE=InnoDB;2. 核心函數(shù)
| 函數(shù)名 | 作用 | 關鍵邏輯 |
|---|---|---|
| currval | 查序列當前值 | SELECT current_value FROM sequence WHERE name = seq_name; |
| nextval | 查下一個值(自動累加) | UPDATE sequence SET current_value += increment WHERE name = seq_name; |
| setval | 設序列當前值 | UPDATE sequence SET current_value = value WHERE name = seq_name; |
3. 測試示例
INSERT INTO sequence VALUES ('TestSeq', 0, 1); -- 添加序列
SELECT SETVAL('TestSeq', 10); -- 設初始值10
SELECT CURRVAL('TestSeq'); -- 查當前值
SELECT NEXTVAL('TestSeq'); -- 查下一個值復習速記提示
- 自增列必為整數(shù) + 主鍵,一張表僅一個;
- 重置序列需刪列重建,避免并發(fā)操作;
- 自定義序列適合批量管理、自定義自增幅度場景。
到此這篇關于MySQL 序列(AUTO_INCREMENT)的使用示例的文章就介紹到這了,更多相關MySQL 序列 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
解決Navicat for MySQL 連接 MySQL 報2005錯誤的問題
在本地MySQL的服務啟動后,由于Navicat的一些功能需要聯(lián)網(wǎng)才可以使用,今天重點給大家介紹Navicat for MySQL 連接 MySQL 報2005 -Unknown MySQL server host ‘localhost’(0)錯誤的情況與解決方法,感興趣的朋友一起看看吧2021-05-05
MySQL查詢性能優(yōu)化的7個常見查詢錯誤及解決方案
數(shù)據(jù)庫性能是Web應用和大型軟件系統(tǒng)穩(wěn)定運行的關鍵,即使是精心設計的應用,如果數(shù)據(jù)庫查詢效率低下,也會導致用戶體驗下降、系統(tǒng)資源浪費,甚至系統(tǒng)崩潰,本文將深入探討MySQL查詢優(yōu)化,分析常見的查詢錯誤,并提供提升數(shù)據(jù)庫性能的實用技巧,需要的朋友可以參考下2025-04-04
MySQL 5.7.18 release版安裝指南(含有bin文件版本)
這篇文章主要介紹了MySQL 5.7.18 release版安裝指南,本文只談論release版,即含有bin文件版本,需要的朋友可以參考下2017-04-04
SQL HAVING子句在GROUP BY中的條件篩選靈活運用
這篇文章主要為大家介紹了SQL HAVING子句在GROUP BY中的條件篩選靈活運用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

