[英]Postgres check constraint in text array for the validity of the values
我想創建類似的東西
CHECK (ALL(scopes) IN ('read', 'write', 'delete', 'update'))
這里的scopes
是表中的一個字段,它是text[]
,我想確保此數組中的所有值都是上述值之一。 有什么意見嗎? 還有可能通過另一個表的SELECT
獲取這些值嗎?
我已經看到了以下解決方案,但我很好奇是否有一個更簡單的解決方案。
使用<@
運算符 :
CHECK(scopes <@ ARRAY['read', 'write', 'delete', 'update'])
不知道確切的用例,但我希望有一個更規范的解決方案:將這四個操作放入一個單獨的表中,該表可以更新。 然后,您可以使用外鍵而不是檢查約束。 如果必須更新這四個關鍵字,則無需更改表DDL,而只需更改外部表中的值即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.