markus
2005-10-09 11:01:52 UTC
Hallo,
ich habe in einer Tabelle zwei columns, die als FOREIGN KEY auf den
"gleichen" Schlüssel zeigen.
CREATE TABLE series(
id SERIAL ,
PRIMARY KEY(id)
);
CREATE TABLE series_has_language(
series_id INTEGER NOT NULL ,
original_series_id INTEGER NOT NULL
);
ALTER TABLE series_has_language ADD FOREIGN KEY
series_id,original_series_id) REFERENCES series(id,id);
Dies gibt bei PostgreSQL 7.4 diesen Fehler:
FEHLER: in Tabelle »series«, auf die verwiesen wird, gibt es keinen
Unique Constraint, der auf die angegebenen Schlüssel passt
Schreibe ich es als einzelne Kommandos gibt es kein Problem
ALTER TABLE series_has_language ADD FOREIGN KEY (series_id) REFERENCES
series(id);
ALTER TABLE series_has_language ADD FOREIGN KEY (original_series_id)
REFERENCES series(id);
Handelt es sich dabei um eine Einschränkung von SQL oder PostgreSQL?
Oder versuche ich hier etwas, was irgendwelchen Design-Rules
wiederspricht und zu Problemen führen kann?
Vielen Dank für Eure Hilfe.
Bye
Markus
PS: Sollte es für dieses Problem schon hunderte von Antworten geben tut
es mir Leid. Ich konnte kein Antwort finden, kann aber daran liegen,
dass ich das Problem nicht vernünftig beschreiben kann :-(
ich habe in einer Tabelle zwei columns, die als FOREIGN KEY auf den
"gleichen" Schlüssel zeigen.
CREATE TABLE series(
id SERIAL ,
PRIMARY KEY(id)
);
CREATE TABLE series_has_language(
series_id INTEGER NOT NULL ,
original_series_id INTEGER NOT NULL
);
ALTER TABLE series_has_language ADD FOREIGN KEY
series_id,original_series_id) REFERENCES series(id,id);
Dies gibt bei PostgreSQL 7.4 diesen Fehler:
FEHLER: in Tabelle »series«, auf die verwiesen wird, gibt es keinen
Unique Constraint, der auf die angegebenen Schlüssel passt
Schreibe ich es als einzelne Kommandos gibt es kein Problem
ALTER TABLE series_has_language ADD FOREIGN KEY (series_id) REFERENCES
series(id);
ALTER TABLE series_has_language ADD FOREIGN KEY (original_series_id)
REFERENCES series(id);
Handelt es sich dabei um eine Einschränkung von SQL oder PostgreSQL?
Oder versuche ich hier etwas, was irgendwelchen Design-Rules
wiederspricht und zu Problemen führen kann?
Vielen Dank für Eure Hilfe.
Bye
Markus
PS: Sollte es für dieses Problem schon hunderte von Antworten geben tut
es mir Leid. Ich konnte kein Antwort finden, kann aber daran liegen,
dass ich das Problem nicht vernünftig beschreiben kann :-(