Ich habe drei Tabellen: organization
, organization_teams
und org_users
. Hier wird organization_teams
von organization
vererbt. Angenommen, ein Datensatz wird in organizations_teams
hinzugefügt. Er erhält die organization
Tabelle id
als Wert für id
Spalte in organization_teams
.Fremdschlüssel + Tabellenvererbung in PostgreSQL?
org_users
hat Fremdschlüssel auf id
Spalte von organization
. Nun, wenn ich versuchen, Daten in org_users
einfügen es gibt mir Fehler wie unten
insert or update on table "org_users" violates foreign key constraint "org_users_organizations"
DETAIL: Key (org_id)=(12) is not present in table "organizations"
Warum?
Nr Sequenzen Rückkehr erstellen werden nicht vererbt. – frlan
Dies ist ein bekannter Vorbehalt: * Eine schwerwiegende Einschränkung der Vererbungsfunktion besteht darin, dass Indizes (einschließlich eindeutiger Integritätsregeln) und Fremdschlüsseleinschränkungen nur für einzelne Tabellen gelten, nicht für ihre Vererbung untergeordnete Objekte. * Http://www.postgresql.org/docs/ current/static/ddl-inherit.html # DDL-INHERIT-CAVEATS – pozs
Ich habe bereits einige Organisationen in Organisationstabellen und einige in Organisationsteams, also haben org_user einen Fremdschlüssel für Organisationen. –