我需要將一個新的Firebird生成器/序列初始化爲現有「舊」表的最大主鍵值。我嘗試了以下但它不工作,我得到錯誤「令牌未知 - 第6行,第8列選擇」。我不能手動執行此操作,因爲它必須在許多不同的DB上執行。我正在使用Firebird 2.5.1。如何設置初始發生器值?
根據http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-execblock.html這應該工作 - 我做錯了什麼?
set term #;
execute block
as
declare i int = 0;
begin
i = select max(ID) from OrganizationType_OLU;
alter sequence OrganizationType_OLU restart with :i;
end
#
set term ;#
謝謝你,這讓我走向了正確的方向。完全正常工作的SQL如下所示:set term#; 執行塊 as declare i int = 0; declare g int = 0; begin i =(從OrganizationType_OLU中選擇max(ID)); g =(從RDB $ DATABASE)選擇gen_id(OrganizationType_OLU, - (gen_id(OrganizationType_OLU,0)))); g =(從RDB $ DATABASE)選擇gen_id(OrganizationType_OLU,(從OrganizationType_OLU中選擇max(ID))); 結束 # 設定項;# –