Gol*_*ver 2 sql postgresql drop-table database-schema
如何删除特定架构中的所有表?只应删除架构中的表。我已经有了用下面的代码获取的所有表名,但是如何删除所有这些表?
下面是一些psycopg2代码,下面是生成的SQL
writeCon.execute("SELECT table_name FROM information_schema.tables WHERE table_schema='mySchema'")
Run Code Online (Sandbox Code Playgroud)
SELECT table_name FROM information_schema.tables WHERE table_schema='mySchema'
你可以使用一个anonymous code block。
注意:我们正在处理DROP TABLE语句,如果你犯了错误,它们真的很刻薄;) 该CASCADE选项也会删除依赖对象。小心使用!
DO $$
DECLARE
row record;
BEGIN
FOR row IN SELECT * FROM pg_tables WHERE schemaname = 'mySchema'
LOOP
EXECUTE 'DROP TABLE mySchema.' || quote_ident(row.tablename) || ' CASCADE';
END LOOP;
END;
$$;
Run Code Online (Sandbox Code Playgroud)
如果您想删除架构中的所有内容,包括包装器、序列等,请考虑删除架构本身并重新创建它:
DROP SCHEMA mySchema CASCADE;
CREATE SCHEMA mySchema;
Run Code Online (Sandbox Code Playgroud)