sql >> Database teknologi >  >> RDS >> PostgreSQL

Opsætning af fremmednøgle med anden datatype

Faktisk giver det mening her er grunden:

I en tabel kan du faktisk indstille enhver kolonne som dens primære nøgle. Så det kunne være heltal, dobbelt, streng osv. Selvom vi i dag for det meste bruger enten heltal eller for nylig strenge som primærnøgle i en tabel.

Da den fremmede nøgle peger på en anden tabels primære nøgle, er det derfor, du skal angive den fremmede nøgles datatype. Og det skal naturligvis være den samme datatype.

EDIT:

SQL-implementeringer er slappe i dette tilfælde, som vi kan se:de tillader kompatible typer (INT og BIG INT, Float eller DECIMAL og DOUBLE) men på egen risiko . Præcis som vi kan se i dit eksempel nedenfor.

SQL-normer specificerer dog, at begge datatyper skal være ens. Hvis datatype er karakter, skal de have samme længde, ellers, hvis det er heltal, skal de have samme størrelse og skal begge dele være signeret eller begge usignerede .

Du kan selv se her, et kapitel fra en MySQL-bog udgivet i 2003.

Håber dette besvarer dit spørgsmål.



  1. Hvordan medtager man nul/0 resultater i COUNT aggregat?

  2. Få årets dag fra en dato i SQL Server (T-SQL)

  3. Opret en midlertidig tabel baseret på en anden tabel i SQL Server

  4. Importer data til en MySQL-database