Ich habe diesen Code in PostgreSQLUnterstützt MySQL Tabellenvererbung?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Was der entsprechende Code für MySQL ist?
Ich habe diesen Code in PostgreSQLUnterstützt MySQL Tabellenvererbung?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Was der entsprechende Code für MySQL ist?
MySQL unterstützt Tabellenvererbung nicht. Die einzige Möglichkeit, die Funktionalität zur Annäherung ist durch einen Fremdschlüssel (die MySQL nicht allzu gut an beide ist):
CREATE TABLE first (
id serial,
PRIMARY KEY (id)
);
CREATE TABLE second (
parent integer REFERENCES first,
PRIMARY KEY (parent)
);
Offensichtlich würden Sie alle Ansichten und Abfragen aus dem PostgreSQL „Vererbung Version ändern müssen "zu regelmäßigen Multi-Relation-Abfragen.
gibt es einen bestimmten Grund (wie Leistung bezogen), dass MySQL es nicht unterstützt? – sajadkk
@sajadkk Ich bin mir nicht der Leistungsprobleme mit der Vererbung bewusst, aber es ist ein relativ neues Konzept und hat immer noch einige Implementierungsdefizite. Die PostgreSQL-Vererbung ist beispielsweise nicht SQL-konform, und nicht alle Abhängigkeiten werden vererbt, so dass man beim Arbeiten mit Vererbung wirklich vorsichtig sein sollte. (MySQL ist übrigens weit weniger kompatibel mit SQL-Standard als PostgreSQL, obwohl ich in letzter Zeit keine Verbesserungen vorgenommen habe.) Wenn Sie wirklich keine Vererbung für ein Datenmodell benötigen, sind Sie wahrscheinlich mit einer relationalen Standardstruktur besser dran. – Patrick
"* aber es ist ein relativ neues Konzept *" - das stimmt eigentlich nicht. Objektrelationale Konzepte gehen weit in die 80er zurück –
MySQL hat keine Vererbung wie PostgreSQL. –