·mysql中的自增長問題比較簡單
mysql中有個auto_increment屬性,只需
create table tbname
( a_id unsigned int primary key auto_increment not null,
a_title varchar(32),
a_content text
);注意:
1.把乙個null插入到乙個auto_increment資料列裡去,mysql將自動生成下乙個序列編號。編號從1開始,並1為基數遞增。把0插入auto_increment資料列的效果與插入null值一樣。但不建議這樣做。
2.如果插入的值與已有的編號重複,則會出現出錯資訊,因為auto_increment資料列的值必須是唯一的;情況二,如果插入的值大於已編號的值,則會把該插入到資料列中,並使在下乙個編號將從這個新值開始遞增。也就是說,可以跳過一些編號。
3.auto_increment是資料列的一種屬性,只適用於整數型別資料列。
設定auto_increment屬性的資料列應該是乙個正數序列,所以應該把該資料列宣告為unsigned,這樣序列的編號個可增加一倍。
4.auto_increment資料列必須有唯一索引,以避免序號重複。
5.auto_increment資料列必須具備not null屬性。
6.auto_increment資料列序號的最大值受該列的資料型別約束,如tinyint資料列的最大編號是127,如加上unsigned,則最大為255。一旦達到上限,auto_increment就會失效。
·oracle中比較複雜,需要用觸發器和序列來完成
1.首先建一張表:
create table table1
( cid number(8) not null primary key,
name varchar2(20),
pw varchar(10),
*** varchar(4),
); 2.建立乙個主鍵的序列範圍:
create sequence emp_sequence
increment by 1 -- 每次加幾個
start with 1 -- 從1開始計數
nomaxvalue -- 不設定最大值
nocycle -- 一直累加,不迴圈
nocache -- 不建緩衝區
3.建立乙個觸發器:
create trigger user_id_trigger before
insert on table1 for each row
begin
select emp_sequence.nextval into :new.id from dual;
end;
注意:1.「:new」是乙個整體,不要寫錯了!!!
2.在程式中還可以直接用"emp_sequence.nextval"來代替主鍵值。
mysql主鍵自增和oracle中主鍵使用序列
在我們的開發工作中,我們經常需要進行資料的插入,那麼資料的插入如何保證每條資料有個唯一的標識呢?這個時候,我們就需要主鍵,主鍵是不可重複的。那麼,在mysql和oracle中,我們需要怎麼保證插入的資料不重複呢?在平常的需求開發中,我們經常會使用到mybatis框架。那麼,今天就結合mybatis框...
SQL server和MYSQL中的自增的一些對比
mysql auto increament sql server identity oracle 在oracle中沒有想sqlserver自動增長列,如果想要達到這個效果必須要自己建立索引 先介紹oracle中怎麼實現的 create sequence seq create table person...
php中mysql自增 MySQL的自增欄位
1.關鍵字 auto increment 2.自增用法 例 create table animals id mediumint not null auto increment,name char 30 not nu 1.關鍵字 auto increment 2.自增用法 例 create table...