oracle資料庫遷移至mysql 之 序列替換

2021-06-06 00:00:36 字數 1519 閱讀 7485

在mysql中沒有序列,所以在遷移過程中oracle得序列需要用mysql的乙個表和乙個函式來替換序列

select ss_seqs.nextval from dual

替換為乙個表和乙個函式

表如下:

create table ss_seqs(

idval int unsigned auto_increment,

primary key (idval)

) engine=innodb auto_increment=10000;

函式如下:

delimiter $$

create function ss_seqs_nextval()

returns integer

contains sql

begin

declare id long;

insert into ss_seqs() values();

select last_insert_id() into id;

if(id=100000) then

set id=10000;

end if;

return id;

end;

$$ delimiter ;

使用方法如下即可取得序列值。

select ss_seqs_nextval();

2012-04-28修改,解決自增長到最大值時從初始值迴圈增長。

上面中函式中迴圈判斷不能使auto_increment真正從初始值10000開始重新開始。

設定auto_increment初始值語句應該是alter  table  ss_seqs set auto_increment=10000;

但是這樣還有乙個問題,alter table放在函式中,新建函式的時候無法執行。所以重新換了個下面的方法。

表如下:

create table ss_seqs(

idval int unsigned,

primary key (idval)

) engine=innodb;

insert into ss_seqs values(10000);

函式如下:

delimiter $$

create function ss_seqs_nextval()

returns integer

contains sql

begin

declare id long;

update ss_seqs set idval=last_insert_id(idval+1);

select last_insert_id() into id;

if(id=99999) then

update ss_seqs set idval=9999;

end if;

return id;

end;

$$ delimiter ;

使用方法如下即可取得序列值。

select ss_seqs_nextval();

Oracle資料遷移至HBase操作記錄

近期需要把oracle資料庫中的十幾張表t級別的資料遷移至hbase中,過程中遇到了許多苦難和疑惑,在此記錄一下希望能幫到一些有同樣需求的兄弟。首先,是根據oracle的資料規劃hbase的表和表結構。從業務上看,十幾張表大概可以分為兩大部分 剛開始的計畫是將所有表都匯入hbase中的一張大表,但是...

Oracle資料遷移至HBase操作記錄

hbase 近期需要把oracle資料庫中的十幾張表t級別的資料遷移至hbase中,過程中遇到了許多苦難和疑惑,在此記錄一下希望能幫到一些有同樣需求的兄弟。首先,是根據oracle的資料規劃hbase的表和表結構。從業務上看,十幾張表大概可以分為兩大部分 剛開始的計畫是將所有表都匯入hbase中的一...

ORACLE資料庫遷移

oracle資料庫遷移過程 劉兵召寫於20081202 14 01 1.新建立兩個oracle使用者,new jbpm和old jbpm劉兵召寫於20081202 14 01 new jbpm 在原有資料庫基礎上更改過的資料庫 表結構發生變化,依然儲存著原來資料庫的一些資料 old jbpm 原有的...