mysql資料庫序列作用 MySQL 序列使用

2021-10-17 18:18:20 字數 2437 閱讀 7248

mysql 序列是一組整數:1, 2, 3, ...,由於一張資料表只能有乙個欄位自增主鍵, 如果你想實現其他欄位也實現自動增加,就可以使用mysql序列來實現。

本章我們將介紹如何使用mysql的序列。

使用 auto_increment

mysql 中最簡單使用序列的方法就是使用 mysql auto_increment 來定義列。

例項以下例項中建立了資料表 insect, insect 表中 id 無需指定值可實現自動增長。

mysql>create table insect->(-> id int unsigned not null auto_increment,

-> primary key (id),

-> name varchar(30) not null, #type of insect

-> date date not null, #date collected

-> origin varchar(30) not null #where collected

query ok, 0 rows affected (0.02sec)mysql> insert into insect (id,name,date,origin) values-> (null,'housefly','2001-09-10','kitchen'),

-> (null,'millipede','2001-09-10','driveway'),

-> (null,'grasshopper','2001-09-10','front yard');

query ok, 3 rows affected (0.02sec)

records: 3 duplicates: 0 warnings: 0

mysql> select *from insect order by id;+----+-------------+------------+------------+

| id | name | date | origin |

| 1 | housefly | 2001-09-10 | kitchen |

| 2 | millipede | 2001-09-10 | driveway |

| 3 | grasshopper | 2001-09-10 | front yard |

3 rows in set (0.00 sec)

獲取auto_increment值

在mysql的客戶端中你可以使用 sql中的last_insert_id( ) 函式來獲取最後的插入表中的自增列的值。

在php或perl指令碼中也提供了相應的函式來獲取最後的插入表中的自增列的值。

perl例項

使用 mysql_insertid 屬性來獲取 auto_increment 的值。 例項如下:

$dbh->do ("insert into insect (name,date,origin)

values('moth','2001-09-14','windowsill')");

my$seq = $dbh->;

php例項

php 通過 mysql_insert_id ()函式來獲取執行的插入sql語句中 auto_increment列的值。

mysql_query ("insert into insect (name,date,origin)

values('moth','2001-09-14','windowsill')", $conn_id);$seq = mysql_insert_id ($conn_id);

重置序列

如果你刪除了資料表中的多條記錄,並希望對剩下資料的auto_increment列進行重新排列,那麼你可以通過刪除自增的列,然後重新新增來實現。 不過該操作要非常小心,如果在刪除的同時又有新記錄新增,有可能會出現資料混亂。操作如下所示:

mysql>alter table insect drop id;mysql>alter table insect-> add id int unsigned not null auto_increment first,

-> add primary key (id);

設定序列的開始值

一般情況下序列的開始值為1,但如果你需要指定乙個開始值100,那我們可以通過以下語句來實現:

mysql>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)engine=innodb auto_increment=100 charset=utf8;

或者你也可以在表建立成功後,通過以下語句來實現:

mysql> alter table t auto_increment = 100;

資料庫mysql軟體安裝 資料庫軟體mysql安裝

2.解壓至欲安裝的目錄下 3.開啟cmd,進入軟體目錄下d qmdownload mysql 5.7.24 winx64 bin,執行mysqld 4.初始化使用者 cmd d qmdownload mysql 5.7.24 winx64 bin,執行mysqld initialize insecu...

mysql資料庫之python鏈結mysql

使用之前請在命令列pip install pymysql import pymysql 1.建立鏈結 conn pymysql.connect host 127.0.0.1 ip位址 port 3306,埠號 database database name 資料庫名稱 user mysql usern...

課程表資料庫 mysql 課程表資料庫 mysql

課程表資料庫 mysql 雲伺服器 elastic compute service,簡稱ecs 是阿里雲提供的效能卓越 穩定可靠 彈性擴充套件的iaas infrastructure as a service 級別雲計算服務。雲伺服器ecs免去了您採購it硬體的前期準備,讓您像使用水 電 天然氣等公...