在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 原有的...