sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL Sub-frågor i kontrollbegränsning

Det stöds inte att se bortom den aktuella raden i en CHECK-begränsning.

http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html säger:

En kontrollbegränsning som anges som en kolumnrestriktion bör endast referera till kolumnens värde, medan ett uttryck som visas i en tabellrestriktion kan referera till flera kolumner.

För närvarande kan CHECK-uttryck inte innehålla underfrågor eller hänvisa till andra variabler än kolumner i den aktuella raden.

Det finns goda skäl för denna begränsning, men om du gillar att jonglera med flammande facklor medan du åker enhjuling genom tung trafik, kan du undergräva begränsningen med hjälp av funktioner. De situationer där detta inte kommer att ske kom tillbaka för att bita du är sällsynt; du skulle vara mycket säkrare att tvinga fram invarianten i triggerkod istället.

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




  1. SQL Server Senaste versioner, upplagor och SQL Server History

  2. Konfigurera enkelt webbservern med XAMPP

  3. pyodbc - mycket långsam bulkinserthastighet

  4. Arbeta med datum i PostgreSQL