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...