2.db2版
create procedure pro_bd_seq()
begin
declare tabname varchar(200) ;
declare tabseq bigint default 0;
declare seqname varchar(200);
declare sqlstr varchar(2000);
declare seqstr varchar(2000);
--定義乙個游標,用於取得
declare mycursor cursor with return for mysql;
--獲得所有的表的名稱
for names as select t.tabname from
(select t.tabname from syscat.tables t where t.tabschema = 'risk' and t.type = 't' and t.tabname not like '%jtyh%' and t.tabname not like 'fe_%' )t inner join (
select tabname from syscat.columns c where c.colname = 'id'and c.typename = 'integer'
) c on t.tabname = c.tabname and t.tabname != 'pd_pa_account_relation' order by t.tabname
do set tabname = tabname;
--拼裝獲得每個表的最大的id值,用來重新設定sequence
set sqlstr = 'select max(id) from '||tabname;
--將獲得的表名拼裝到可執行的動態sql中去執行
prepare mysql from sqlstr;
--開啟游標
open mycursor;
--動態獲得多查詢出來的最大的id
fetch mycursor into tabseq;
--關閉
close mycursor;
--設定新的sequence
set tabseq = tabseq+1;
set seqname = 'seq_'||tabname;
set seqstr = 'alter sequence '||seqname||' restart with '||char(tabseq);
--執行修改
execute immediate seqstr;
set tabname = '';
set tabseq = 0;
end for;
end;
call pro_bd_seq;
機房重構 跨窗體傳值
果然c 的跨窗體傳值比vb難得多,vb就定義乙個全域性變數就ok,但是c 還要考慮到命名空間的問題 frmmain要呼叫loginui的兩個值,但是在此同時,frmmain又要引用loginui,所以說就遇到了乙個很麻煩的問題,一直在考慮命名空間的問題,但是其實和命名空間沒有太大的關係,我卻在命名空...
關於sequence的學習
sql create sequence b q s 1 2 start with 1 3 increment by 1 序列已建立。sql select b q s 1.currval from dual select b q s 1.currval from dual 第 1 行出現錯誤 ora ...
oracle的sequence的序列
它是oracle的序列的,是可以的實現和mysql的一樣的自動增長的。想要oracle的自動增長,你必須得有 1 首先要有create sequence或者create any sequence許可權,create sequence emp sequence increment by 1 每次加幾個...