级联此查询

时间:2017-12-24 12:03:18

标签: sql database postgresql truncate cascade

我想级联此查询。

SELECT 'TRUNCATE TABLE ' ||  tablename || ';' FROM pg_tables WHERE tableowner='XXX'; 

我想要所有者“xxx”的所有表被截断(这有效)但我想它也是级联的。我怎样才能让它级联?

1 个答案:

答案 0 :(得分:1)

添加keyword CASCADE之类的@clemens commented 但也要转义tablename以避免SQL注入和其他错误。最优雅的是format()

SELECT format('TRUNCATE TABLE %I CASCADE;', tablename)
FROM   pg_tables WHERE tableowner = 'XXX';