首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 設定主鍵自動遞增(AUTO_INCREMENT)完整指南

     編輯:MySQL 綜合教學

基本語法

在建立資料表時,將主鍵欄位定義為 AUTO_INCREMENT,資料庫會自動為新增列分配唯一遞增整數:

CREATE TABLE customers (
    id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
    name VARCHAR(15)
);

INSERT INTO customers (name) VALUES ('name1'), ('name2');
-- id 會自動產生 1, 2

對比:SQL Server 的 IDENTITY

SQL Server 使用 IDENTITY(種子, 遞增) 達成相同效果:

CREATE TABLE customers (
    id INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
    name VARCHAR(15)
);

常見建表範例

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
    `uid` INT(11) NOT NULL AUTO_INCREMENT,
    `gid` INT(11) DEFAULT NULL,
    `username` VARCHAR(15) NOT NULL,
    `password` VARCHAR(15) NOT NULL,
    PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

常見問題 FAQ

Q:欄位 A 設為 AUTO_INCREMENT,能否將非自增欄位 B 設為主鍵?

A:可以。 自增欄位通常做主鍵,但也可自訂其他唯一欄位為主鍵。只要確保插入資料時不重複即可。建議仍將自增欄位設為主鍵,避免維護麻煩。

Q:如何重設自增起始值?

ALTER TABLE table_name AUTO_INCREMENT = 1000; (需大於現有最大 ID)

Q:刪除資料後自增值會歸零嗎?

不會。自增計數器只增不減,重啟服務時會以 SELECT MAX(id) FROM table 重新載入。若需歸零請用 TRUNCATE TABLE。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved