sql >> Database >  >> RDS >> PostgreSQL

Buitenlandse sleutels + tabelovererving in PostgreSQL?

Het wordt behandeld in de gebruikershandleiding .

De korte versie:u kunt externe sleutels of tabelovererving gebruiken, maar niet beide. Dit is niet inherent onmogelijk, het is alleen technisch vrij moeilijk om op een snelle, betrouwbare manier unieke indexen te implementeren die overgeërfde tabellen in PostgreSQL omvatten. Zonder dat kun je geen bruikbare externe sleutel hebben. Niemand heeft het met succes goed genoeg geïmplementeerd om een ​​patch die ondersteuning toevoegt nog niet geaccepteerd te krijgen in PostgreSQL.

Een externe sleutel kan verwijzen naar een tabel die deel uitmaakt van een overervingshiërarchie, maar vindt alleen rijen in die tabel exact . Niet in bovenliggende of onderliggende tabellen. Om te zien welke rijen de refererende sleutel ziet, doe je een SELECT * FROM ONLY thetable . De ONLY trefwoord betekent "overerving negeren" en dat is wat het opzoeken van de refererende sleutel zal doen.



  1. Top PG Clustering High Availability-oplossingen voor PostgreSQL

  2. Rake-taken lijken de configuratie van database.yml te negeren

  3. AlwaysOn-beschikbaarheidsgroepen:Quorum

  4. Hoe kan ik bigint (UNIX-tijdstempel) converteren naar datetime in SQL Server?