sql >> Databasteknik >  >> RDS >> PostgreSQL

Ställa in främmande nyckel med annan datatyp

Det är faktiskt vettigt här är anledningen:

I en tabell kan du faktiskt ange vilken kolumn som helst som dess primärnyckel. Så det kan vara heltal, dubbel, sträng, etc. Även om vi nuförtiden oftast använder antingen heltal eller, på senare tid, strängar som primärnyckel i en tabell.

Eftersom den främmande nyckeln pekar på en annan tabells primärnyckel, är det därför du måste ange den främmande nyckelns datatyp. Och det måste uppenbarligen vara samma datatyp.

EDIT:

SQL-implementationer är slappa i det här fallet som vi kan se:de tillåter kompatibla typer (INT och BIG INT, Float eller DECIMAL och DOUBLE) men på egen risk . Precis som vi kan se i ditt exempel nedan.

SQL-normer anger dock att båda datatyperna måste vara samma. Om datatypen är karaktär måste de ha samma längd, annars måste de ha samma storlek om det är heltal. och måste båda vara signerade eller båda osignerade .

Du kan själv se här, ett kapitel från en MySQL-bok som publicerades 2003.

Hoppas detta svarar på din fråga.



  1. JSON_DEPTH() – Hitta det maximala djupet för ett JSON-dokument i MySQL

  2. Grunderna för att ställa in MySQL på dedikerade servrar

  3. Skillnaden mellan LockModeType Jpa

  4. PostgreSQL 9.3:Dynamisk pivottabell