hängen ADD FOREIGN KEY: Gibt es eine Problemumgehung?

0

Jetzt bin ich sorta PostgreSQL DBA / dev ...
und stellte sich dem bekannten Problem:

alter table assessment -- quite simple new table: (event int, value bool)
  add constraint assessment_event_fk
    foreign key (event)
    references rtls(id) -- it refs the primary key integer field

Hinzufügen not valid in nutzloser Hoffnung zu validate es später) ist auch keine Hilfe.

Ja, ich weiß, es hängt rtls Tabelle ist jetzt ca. 2M Datensätze).
Und man muss pg_dump die Basis, bearbeiten Sie SQL und laden Sie es zurück.
Ich habe diesen "Ratschlag" in Beiträgen seit ca. 2003 gesehen ...

Es ist 9.2.18 von der Standardbereitstellung unter CentOS 7, wenn es darauf ankommt ( es tut! ).

Ich kann nicht glauben, dass es hier über ein Jahrzehnt stecken geblieben ist ...
Was sollte ich beachten, um es zu umgehen?

Benutze sorta check zum exists (select id from rtls where id=?) ???
Auf keinen Fall:

vad=> alter table assessment add constraint assessment_event_fk check(exists (select rtls.id from rtls where rtls.id=event));
ERROR:  cannot use subquery in check constraint
jno
quelle

Antworten: