PostgreSQL如何从指定数据库的模式中删除表?
在PostgreSQL中指定数据库执行DROP TABLE的方法
PostgreSQL里的SQL语句本身没办法直接在当前连接的数据库里指定另一个数据库执行操作,因为每个数据库是独立的隔离空间。你可以用下面两种方法解决:
方法一:连接时直接指定目标数据库
如果你用命令行工具psql,可以直接在执行语句时指定数据库,不用先切换连接:psql -d SoloCopy -c "DROP TABLE public.table1;"要是用图形化客户端(比如pgAdmin),可以新建一个连接到SoloCopy数据库的查询窗口,在这个窗口里执行
DROP TABLE public.table1;就行,这样就不会受之前选中的数据库影响。方法二:用dblink跨数据库执行语句
如果你必须在当前连接的数据库里操作另一个数据库,可以用PostgreSQL的dblink扩展来实现:- 先在当前数据库安装dblink扩展(只需执行一次):
CREATE EXTENSION IF NOT EXISTS dblink; - 然后通过dblink连接到SoloCopy数据库并执行删除语句:
如果你的数据库需要用户名和密码验证,连接字符串可以改成:SELECT dblink('dbname=SoloCopy', 'DROP TABLE public.table1;');SELECT dblink('dbname=SoloCopy user=your_user password=your_pwd', 'DROP TABLE public.table1;');
- 先在当前数据库安装dblink扩展(只需执行一次):
内容的提问来源于stack exchange,提问作者DarkBlade
相关产品推荐
相关产品推荐

