批量修改生成kingbase的rowid列
show default_with_rowid;
如果结果是off,说明不会生成rowid的列,则无法查询rowid列
想要查询需要手动将表得rowid列加上或者修改上面参数后重新迁移数据
批量修改对应用户对应模式下所有表的rowid的存储过程如下,执行前需要保证default_with_rowid的值为on,可以添加到配置文件中重启生效
CREATE OR REPLACE PROCEDURE p_alter_rowid()
as
declare
sql_string text;
tablename text default '';
table_info cursor for
SELECTtablename
FROMsys_tables
WHEREschemaname = '模式名' AND tableowner='用户名';
beginopen table_info;loopfetch table_info into tablename;Exit when table_info%notfound;sql_string := 'alter table 模式名."'||tablename||'" set with rowid ';RAISE NOTICE '%',sql_string;execute sql_string;end loop;close table_info;
end;CALL p_alter_rowid()
命令行创建存储过程前后需要添加对应的前后缀