sql >> Database >  >> RDS >> PostgreSQL

SQL Sub-query's met controlebeperking

Het wordt niet ondersteund om verder te kijken dan de huidige rij in een CHECK-beperking.

http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html zegt:

Een controlebeperking die is opgegeven als kolombeperking mag alleen verwijzen naar de waarde van die kolom, terwijl een expressie die in een tabelbeperking wordt weergegeven, kan verwijzen naar meerdere kolommen.

Momenteel kunnen CHECK-expressies geen subquery's bevatten of verwijzen naar andere variabelen dan kolommen van de huidige rij.

Er zijn goede redenen voor deze beperking, maar als je graag met brandende fakkels jongleert terwijl je op een eenwieler door druk verkeer rijdt, kun je de beperking ondermijnen met behulp van functies. De situaties waarin dit niet kom terug om te bijten, je bent zeldzaam; het zou veel veiliger zijn om in plaats daarvan de invariant in triggercode af te dwingen.

http://www.postgresql.org/docs/9.1/interactive/triggers.html




  1. ProxySQL-native clustering met Kubernetes

  2. 3 manieren om de tijdzone te retourneren van een datetime-waarde in Oracle

  3. Hoe het verschil tussen twee datums in PostgreSQL/Oracle te berekenen

  4. Typen SQL Server-cursor - Alleen doorsturen dynamische cursor | SQL Server-zelfstudie / TSQL-zelfstudie