Ich habe 2 Tabellen, wie Sie in meinem Posgresql-Code unten sehen werden. Die ersten Tabellenschüler haben 2 Spalten, eine für student_name und die andere student_id für den Primärschlüssel. In meiner zweiten Tabelle namens tests gibt es 4 Spalten, eine für subject_id, eine für den subject_name, dann eine für einen Studenten mit der höchsten Punktzahl in einem Fach, das höchsteStudent_id ist. Ich versuche, highestStudent_id auf student_id in meiner Schüler-Tabelle verweisen. Dies ist der Code, den ich unten habe, ist nicht sicher, ob die Syntax korrekt ist:postgresql Fremdschlüssel-Syntax
CREATE TABLE students (student_id SERIAL PRIMARY KEY,
player_name TEXT);
CREATE TABLE tests (subject_id SERIAL,
subject_name,
highestStudent_id SERIAL REFERENCES students);
ist die Syntax highestStudent_id SERIAL REFERENCES students
korrekt? weil ich einen anderen wie highestStudent_id REFERENCES students(student_id))
gesehen habe
Was wäre die richtige Art der Erstellung des Fremdschlüssels in Postgresql bitte?
Ja lautet die Syntax „korrigieren“. Die FK-Spalte sollte jedoch ** nicht ** als "seriell" definiert werden, sie sollte als "ganze Zahl" definiert werden. 'serial' ist kein" realer "Datentyp, es ist ein kurzer Zeiger zum Auffüllen des Defaultwertes aus der Sequenz –
Wenn der FK einen Primärschlüssel referenziert, werden keine Spalten benötigt. Wenn der FK einen alternativen Schlüssel referenziert, werden Spalten benötigt. – jarlh
@a_horse_with_no_name Meinst Du das so: highestStudent_id integer REFERENZEN players – Hamza