mysql 呼叫序列 MySQL序列使用

2021-10-18 03:24:48 字數 2396 閱讀 6928

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.02 sec)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.02 sec)records: 3  duplicates: 0

warnings: 0mysql> 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 = 100,

-> primary key (id),-> name varchar(30) not null,

# type of insect-> date date not null, # date collected

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

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

mysql> alter table t auto_increment = 100;

mysql序列 mysql建立序列

提到mysql,我順便講講序列。用過oracle的人都知道,orale沒有類似mysql的auto increment這樣的自增長字段,實現插入一條記錄,自動增加1.oracle是通過sequence 序列 來完成的。這樣看起來,似乎mysql的自增長要比oracle序列的實現更好更方便。那我為什麼...

mysql 序列 MySQL 序列使用

mysql 序列使用 mysql 序列是一組整數 1,2,3,由於一張資料表只能有乙個欄位自增主鍵,如果你想實現其他欄位也實現自動增加,就可以使用mysql序列來實現。本章我們將介紹如何使用mysql的序列。使用 auto increment mysql 中最簡單使用序列的方法就是使用 mysql ...

mysql 過程呼叫函式 mysql函式呼叫過程

1.conn mysql init null 初始化 mysql conn 2.mysql real connect conn,localhost root 123456 xpy 0,null,client found rows 失敗 null 建立乙個連線 3.res mysql query co...