Mam ten kod w PostgreSQLCzy dziedziczenie tabeli wsparcia MySQL?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Co to jest kod odpowiednik dla MySQL?
Mam ten kod w PostgreSQLCzy dziedziczenie tabeli wsparcia MySQL?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Co to jest kod odpowiednik dla MySQL?
MySQL nie obsługuje dziedziczenia tabel. Jedynym sposobem na zbliżenie funkcjonalność jest za pomocą klucza obcego MySQL (co nie jest zbyt dobra albo):
CREATE TABLE first (
id serial,
PRIMARY KEY (id)
);
CREATE TABLE second (
parent integer REFERENCES first,
PRIMARY KEY (parent)
);
Oczywiście, trzeba by zmienić jakiekolwiek poglądy i zapytań z PostgreSQL „wersja dziedziczenie "do regularnych zapytań o wiele relacji.
Czy istnieje konkretny powód (np. Związany z wydajnością), którego MySQL nie obsługuje? – sajadkk
@sajadkk Nie jestem świadomy problemów z wydajnością z dziedziczeniem, ale jest to stosunkowo nowa koncepcja i nadal ma pewne niedociągnięcia w zakresie wdrażania. Dziedziczenie PostgreSQL nie jest na przykład zgodne z SQL i nie wszystkie ograniczenia są dziedziczone, więc należy zachować ostrożność podczas pracy z dziedziczeniem. (MySQL, nawiasem mówiąc, jest o wiele mniej zgodny ze standardem SQL niż PostgreSQL, chociaż ostatnio nie sprawdzałem poprawności.) Chyba, że * naprawdę * potrzebujesz dziedziczenia z jakiegoś powodu, prawdopodobnie lepszym wyjściem jest standardowa struktura relacyjna. – Patrick
"* ale jest to stosunkowo nowa koncepcja *" - to w rzeczywistości nie jest prawdą. Pojęcia relacyjne obiektów wracają do lat 80-tych –
MySQL nie ma dziedziczenia jak PostgreSQL. –