MySQL中自動增長列ID的使用

2021-08-30 14:44:57 字數 1185 閱讀 1995

mysql中自動增長列id的使用

mysql

中可以通過auto_increment

屬性為新的行產生唯一的標識,如:

create table animals (

id int not null auto_increment,

name varchar(10))

insert into animals (name) values (『joe』), (『tom』), (『rose』);

select * from animals;

1joe

2tom

3rose

你可以使用last_insert_id()sql

函式或mysql_insert_id() c api

函式來查詢最新的auto_increment

值。這些函式與具體連線有關,因此其返回值不會被其它執行插入功能的連線影響,他返回是本連線最後乙個insert

語句所產生的值。

更準確地講,將在下述條件下更新mysql_insert_id():

·         將值儲存到auto_increment列中的insert語句。無論值是通過在列中儲存特殊值null或0自動生成的,還是確切的非特殊值,都成立。

·         在有多行insert語句的情況下,mysql_insert_id()返回第1個自動生成的auto_increment值,如果未生成這類值,將返回插入在auto_increment列中的最後1個確切值。

·         通過將last_insert_id(expr)插入到任意列中以生成auto_increment值的insert語句。

·         通過更新任意列至last_insert_id(expr)以生成auto_increment值的insert語句。

·         mysql_insert_id()的值不受諸如select等返回結果集的語句的影響。

·         如果前面的語句返回了錯誤,mysql_insert_id()的值將是不確定的。

注意,如果前面的語句未使用auto_increment,mysql_insert_id()返回0。如果需要儲存值,在生成值的語句後,務必立刻呼叫mysql_insert_id()。

mysql_insert_id()的值僅受在當前客戶端連線內發出的語句的影響。不受由其他客戶端發出的語句的影響

oracle中實現自動增長列

oracle中實現自動增長列不能夠像 sqlserver中在 表中直接加標示,而是要借助序列來實現。下面簡單介紹一下,oracle中實現自動增長列的乙個方法 步驟 1 建立乙個序列來實現自動增長。create sequence user sequence1 start with 1 初值 incre...

ORACLE的自動增長列

關於oracle自動增長列 sqlserver2000有自動增長 create sequence seq tab g increment by 1 start with 1 maxvalue 9999999 minvalue 1 建立序列 seq tab g.currval 指當前序列 seq ta...

id的自動增長

自動生成id 配置xml時a generator 常用四個 native identiy sequence uuid 其中uuid 的返回值為 string 型別配置 annotation時a 自定義id b auto c identity d sequence e table 在 id前加上 ge...