2013-07-25 88 views
0

我創建了類似名稱的角色,例如abc_,其中數字會變化,但abc_始終保持不變。我可以看到以下查詢的角色postgresql刪除類似名稱的角色

select * from pg_roles where rolname like 'abc_%'; 

但我不知道如何刪除具有類似名稱的所有角色。我有以下查詢,但它的全名。

DROP ROLE name; 

我想從psql中刪除,我不寫任何函數。是否有任何查詢來放棄角色,我可以像'abc_%'?

回答

2

如果不使用某種類型的動態SQL,則不能這樣做。使用動態SQL砸角色一個簡單的例子:

select 'DROP ROLE ' || rolname || ';' from pg_roles where rolname like 'abc_%'; 

如果你不願意的結果粘貼到psql的會話,你也可以管從一個會話到另一個。

psql -d yourdb -U youruser -qtAc "select 'DROP ROLE ' || rolname || ';' from pg_roles where rolname like 'abc_%'" | psql -d yourdb -U youruser