Rya*_*ton 23 postgresql schema migrate postgresql-9.1
我有一个PostgreSQL 9.1数据库,其中包含100个左右的表,这些表被加载到"公共"模式中.我想将这些表(但不是'public'中的所有函数)移动到'data'模式.
我知道我可以使用以下内容一次移动1个表.
ALTER TABLE [tablename] SET SCHEMA [new_schema]
Run Code Online (Sandbox Code Playgroud)
是否可以在一次操作中将所有表移动到新架构?如果是这样,那么完成这项任务最有效的方法是什么?
Fra*_*ens 47
DO会做的伎俩:
DO
$$
DECLARE
row record;
BEGIN
FOR row IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' -- and other conditions, if needed
LOOP
EXECUTE 'ALTER TABLE public.' || quote_ident(row.tablename) || ' SET SCHEMA [new_schema];';
END LOOP;
END;
$$;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14583 次 |
| 最近记录: |