回答
它迭代模式中的所有表,清除他的內容一個簡單的數據庫功能。 警告:此功能清除所有表格,不詢問您是否確定:)謹慎使用!沒有保修!
CREATE OR REPLACE FUNCTION clear_tables_in_schema(_schemaname TEXT)RETURNS VOID AS
$$
DECLARE _tablename TEXT;
BEGIN
FOR _tablename IN SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = _schemaname LOOP
RAISE INFO 'Clearing table %.%', _schemaname, _tablename ;
EXECUTE format('TRUNCATE %I.%I CASCADE;', _schemaname, _tablename);
END LOOP;
IF NOT FOUND THEN
RAISE WARNING 'Schema % does not exist', _schemaname;
END IF;
END;
$$
LANGUAGE plpgsql;
-- Usage:
SELECT clear_tables_in_schema('your_schema');
您的偉人! thx – user3232446
由於外鍵導致的任何嚴重數據庫都會失敗 - 您無法截斷其他表引用的表。您需要一次截斷所有表格。 –
謝謝,我添加了「CASCADE」子句。 @ user3232446:我更新我的答案並修改了功能。 –
喜歡的東西:
#!/bin/bash
# Save the schema
pg_dump -U user --format plain --schema-only --file db_schema.sql dbname
com="psql -h host -U user -d dbname"
$com <<EOF
DROP TABLE foo;
DROP TABLE bar;
DROP TABLE baz;
# ... more tables here ...
EOF
# Recreate all tables
$com < db_schema.sql
當然,以上假設表名是恆定的並且事先已知。如果沒有,請使用下面的Tommaso解決方案,或者如果您感覺hackier grep db_schema文件中的名稱:-) – kliron
- 1. 從TinyMCE刪除所有內容過濾
- 2. 從列表中刪除所有內容
- 3. 刪除所有內容
- 4. 刪除括號內的所有內容
- 5. postgresql:刪除所有鎖
- 6. Django PostgreSQL - 刪除所有表?
- 7. Bash刪除所有內容</html>
- 8. .remove()不刪除所有內容
- 9. TabHost刪除所有內容活動
- 10. 刪除文件中的所有內容
- 11. 刪除「?」後的所有內容python
- 12. Gsutil rm不會刪除所有內容
- 13. 文件輸出刪除所有內容
- 14. gnu cut刪除所有內容:
- 15. 刪除mysql#1前的所有內容
- 16. MySQL刪除之前的所有內容/
- 17. git pull subtree刪除所有內容
- 18. 刪除特里樹的所有內容
- 19. 刪除所有文件夾的內容
- 20. PHP從陣列中刪除除x以外的所有內容
- 21. java刪除空格也刪除空格後的所有內容
- 22. 刪除Smartgit配置目錄不刪除所有內容
- 23. sqlite3刪除不會刪除所有內容?
- 24. 刪除內容並顯示JAVA中的所有內容
- 25. 使用javascript刪除所有內容和內容
- 26. 從mysql內容中刪除內容
- 27. 從opencart購物車中刪除一個項目會刪除所有內容
- 28. 如何從PDF中刪除位圖以外的所有內容?
- 29. 從網頁中刪除所有內容的最佳方式?
- 30. 刪除從輸出到定義的所有內容var
pg_dump如何設置schema-only標誌?你不會說哪個版本的Postgres,所以我會發布9.1的鏈接。 http://www.postgresql.org/docs/9.1/static/app-pgdump.html – ojf
爲什麼你不刪除整個數據庫並重新創建它的任何原因? – kliron
@ojf我有版本9.3.9在Linux上運行 – user3232446