各資料庫的自增主鍵

2021-08-19 15:54:28 字數 4614 閱讀 9314

1.db2自增主鍵

create table db2_zzzj

(t_id  bigint primary key not null generated by default as identity(start with 1 increment by 1),

t_char  char(50),

t_varchar varchar(50)

);自增主鍵表插資料

--/create procedure insert_db2_zzzj()

begin

declare mycounter integer;

set mycounter =1;

while mycounter <= 100 do

insert into db2_zzzj(t_char,t_varchar) values('aaa','bbb');

commit;

set mycounter = mycounter +1;

end while;

end/

call insert_db2_zzzj;

drop procedure insert_db2_zzzj;

2.dm自增主鍵

create table dm_zzzj

(t_id  bigint identity(1,1) not null,

t_char  char(12) null,

t_varchar  varchar(12) null,

primary key(t_id)

);自增主鍵表插資料

begin 

for v_count in 1..10 loop

insert into dm_zzzj(t_char,t_varchar) values(v_count,v_count);

end loop;

commit;

end;

/3.mysql自增主鍵表

create table t_mysql_zzzj

(t_id  bigint not null primary key auto_increment,

t_char char(50)

)engine=innodb;

自增主鍵表插資料

create procedure instance()

begin

declare i int default 1;

start transaction;

while i<11 do

insert into t_mysql_zzzj(t_char) values('杭州');

4.oscar 自增主鍵表

oscar資料庫自帶自增資料型別——serial和bigserial

需要注意的是,建立表時必須將自增資料型別字段放置到最後,這樣可以全表插資料,而不需一一列出需要插資料的字段。

create table oscar_zzzj

(t_id bigint not null,

t_serial serial not null,

constraint tbl_oscar_zzzj_peky primary key(t_serial)

);自增主鍵表插資料

begin

for v_count in 1..11 loop

insert into oscar_zzzj values(v_count);

commit;

end loop;

end;

/5.sql自增主鍵表

create table sql_zzzj

(t_id numeric(20) not null identity(1,1),

t_char char(20) collate chinese_prc_ci_as not null,

primary key(t_id)

);自增主鍵表插資料

declare @temp int

set @temp =1

while @temp <=10

begin

insert into sql_zzzj(t_char) values(@temp)

set @temp=@temp +1

end6.sybase自增主鍵表

create table syb_zzzj

(t_id    bigint identity not null,

t_char  char(50), 

primary key(t_id)

);自增主鍵表插資料

declare @a1 int

declare @b1 int

set @a1 = 0 while @a1<1

begin

waitfor delay '00:00:01'

set @b1=1 while @b1<=100

begin

insert into syb_zzzj(t_char) values('杭州')

set @b1= @b1+1

endset @a1=@a1+1

end7.gbase 自增主鍵表

create table gbase_zzzj

(t_id  bigint primary key auto_increment,

t_char char(10)

);自增主鍵表插資料

delimiter

create procedure pro_gbase_zzzj()

begin

declare v_id int default 2;

declare i int default 0;

while i<10 do

insert into gbase_zzzj(t_char) values (v_id);

set i=i+1;

set v_id=v_id+1;

end while;

8.greenplum自增主鍵

create table greenplum_zzzj

(t_bigint serial,

t_char char(20),

t_bigserial bigserial,

primary key(t_bigint)

);自增主鍵表插資料

create function fun_greenplum() returns bigint as $$

declare

v_id bigint:=2;

begin

for i in 1..10 loop

insert into greenplum_zzzj(t_char,t_bigserial) values(('a!我'||v_id),v_id);

v_id :=v_id+1;

end loop;

return v_id;

end;

$$ language plpgsql;

select fun_greenplum()

9.kingbase自增主鍵

create table kingbase_zzzj(

t_bigint bigint identity(1,1),

t_char char(10),

primary key(t_bigint)

);自增主鍵表插資料

create procedure pro_kingbase_zzzj() as

declare

v_id integer :=2;

begin

for i in 1..10 loop

insert into kingbase_zzzj(t_char) values(concat('a!我',v_id));

v_id :=v_id+1;

end loop;

end;

call pro_kingbase_zzzj() 

10.postgres自增主鍵

create table postgres_zzzj(

t_serial serial,

t_bigserial bigserial,

t_char char(10)

primary key(t_serial)

);create function fun_postgres_zzzj() returns bigint as $$

declare

v_id bigint :=2;

begin

for i in 1..10 loop

insert into postgres_zzzj(t_bigserial,t_char) values(v_id,concat('a!我',v_id));

v_id :=v_id+1;

end loop;

return v_id;

end;

$$ language plpgsql;

select fun_postgres_zzzj()

Oracle資料庫主鍵自增

在學習mysql時,我們很容易通過auto increment就能實現主鍵自增的功能,但是在oracle資料庫中,是沒有這個關鍵字的,所以也不能通過這樣來實現主鍵自增。下面我就為大家介紹兩種實現主鍵自增的方法。兩種方法的基礎都有乙個概念就是序列 sequence 的概念,一種是利用序列和顯式呼叫的方...

資料庫主鍵自增策略

資料庫主鍵自增策略 1.自增長主鍵策略 優點 簡單,不需要程式做特別處理 缺點 這種方法對以後如果專案移植到其他資料庫改動會比較大,而且如果多表合併,就會出現重複的主鍵 2.使用時間戳 隨機數 優點 時間簡單,與資料庫無關,移植性較好 缺點 長度太長,最少也得20位,不進占空間並且建索引的話效能會比...

資料庫自增主鍵的問題

刪除原表資料 並重置自增列,對於有外來鍵的資料 truncate 無法刪除 truncate table tablename 只刪除資料,標識值不清除 delete from tablename 設定允許顯式插入自增列 set identity insert tablename on 設定不允許顯式...