PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fremdschlüssel mit unterschiedlichem Datentyp einrichten

Eigentlich macht es hier Sinn, warum:

In einer Tabelle können Sie tatsächlich jede Spalte als Primärschlüssel festlegen. Es könnte also Integer, Double, String usw. sein. Auch wenn wir heutzutage meistens entweder Integer oder neuerdings Strings als Primärschlüssel in einer Tabelle verwenden.

Da der Fremdschlüssel auf den Primärschlüssel einer anderen Tabelle zeigt, müssen Sie den Datentyp des Fremdschlüssels angeben. Und es muss offensichtlich derselbe Datentyp sein.

BEARBEITEN:

SQL-Implementierungen sind in diesem Fall lax, wie wir sehen können:Sie erlauben kompatible Typen (INT und BIG INT, Float oder DECIMAL und DOUBLE) aber auf eigene Gefahr . So wie wir in Ihrem Beispiel unten sehen können.

Die SQL-Normen legen jedoch fest, dass beide Datentypen gleich sein müssen. Wenn der Datentyp ein Zeichen ist, müssen sie die gleiche Länge haben, andernfalls, wenn es sich um eine Ganzzahl handelt, müssen sie die gleiche Größe haben und muss beides signiert oder beides unsigniert sein .

Sie können sich hier selbst ein Kapitel aus einem MySQL-Buch ansehen, das 2003 veröffentlicht wurde.

Ich hoffe, das beantwortet Ihre Frage.