8.MySQL的自增(AUTO_INCREMENT)


1.為什么需要自增

為數據表設置主鍵約束后,每次插入記錄時,如果插入的值已經存在,會插入失敗。為主鍵生成自動增長的值可以解決這種問題。

2.語法

字段名 數據類型 AUTO_INCREMENT

3.注意

  1. 一個表中只能有一個自動增長字段

  2. 該字段的數據類型是整數類型

  3. 必須定義為鍵

  4. 若為自動增長字段插入NULL、0、DEFAULT或在插入時省略該字段,該字段就會使用自動增長值;

  5. 若插入的是一個具體值,則不會使用自動增長值

  6. 自動增長值從1開始自增,每次加1。

  7. 若插入的值大於自動增長的值,則下次插入的自動增長值會自動使用最大值加1;

  8. 若插入的值小於自動增長值,則不會對自動增長值產生影響。

  9. 使用DELETE刪除記錄時,自動增長值不會減小或填補空缺。

4.演示

 1 CREATE DATABASE mahaiwuji;
 2 USE mahaiwuji;
 3 CREATE TABLE student (
 4     sid INT PRIMARY KEY AUTO_INCREMENT,
 5     sname VARCHAR (32)
 6 ) ENGINE = INNODB DEFAULT CHARSET = utf8;
 7 
 8 INSERT INTO student(sname) VALUES ('碼海無際1');
 9 INSERT INTO student VALUES (0,'碼海無際2');
10 INSERT INTO student VALUES (4,'碼海無際3');
11 INSERT INTO student(sname) VALUES ('碼海無際4');
12 INSERT INTO student VALUES (3,'碼海無際3');
13 DELETE FROM student WHERE sid=5;
14 INSERT INTO student(sname) VALUES ('碼海無際4');

5.查看自動增長值

語法

1 SHOW CREATE TABLE student;

運行結果

1 CREATE TABLE `student` (
2   `sid` int(11) NOT NULL AUTO_INCREMENT,
3   `sname` varchar(32) DEFAULT NULL,
4   PRIMARY KEY (`sid`)
5 ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

6.修改自動增長

1 ALTER TABLE student AUTO_INCREMENT = 10;
2 INSERT INTO student(sname) VALUES ('碼海無際5');

7.刪除自動增長

1 ALTER TABLE student MODIFY sid INT;
2 INSERT INTO student VALUES (11,'碼海無際6');
3 -- 下面這行無法運行,因為自增被刪除,必須手動插入主鍵
4 INSERT INTO student(sname) VALUES ('碼海無際7');

8.添加自動增長

1 ALTER TABLE student MODIFY sid INT UNSIGNED AUTO_INCREMENT;
2 INSERT INTO student(sname) VALUES ('碼海無際7');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM