各數據庫的自增主鍵


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
END


6.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
end
set @a1=@a1+1
end


7.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_zzz
j()





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章