У меня есть этот код в PostgreSQLПоддерживает ли MySQL наследование таблицы?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Что такое эквивалентный код для MySQL?
У меня есть этот код в PostgreSQLПоддерживает ли MySQL наследование таблицы?
CREATE TABLE first (
id serial,
primary key(id)
);
CREATE TABLE second (primary key(id)) INHERITS (first);
Что такое эквивалентный код для MySQL?
MySQL не поддерживает наследование таблицы. Единственный способ, чтобы приблизить функциональность с помощью внешнего ключа (который MySQL не слишком хорошо либо):
CREATE TABLE first (
id serial,
PRIMARY KEY (id)
);
CREATE TABLE second (
parent integer REFERENCES first,
PRIMARY KEY (parent)
);
Очевидно, что вы должны изменить любые мнения и запросы от PostgreSQL «наследование версии "к регулярным многосвязным запросам.
есть ли определенная причина (например, связанная с производительностью), что MySQL не поддерживает ее? – sajadkk
@sajadkk Мне не известны проблемы с производительностью с наследованием, но это относительно новая концепция и все еще имеет некоторые недостатки в реализации. Наследование PostgreSQL не является, например, SQL-совместимым, и не все ограничения наследуются, поэтому нужно быть очень осторожными при работе с наследованием. (MySQL, кстати, гораздо менее совместим с SQL-стандартом, чем PostgreSQL, хотя в последнее время я не проверял улучшения.) Если вы * действительно не нуждаетесь в наследовании для какой-либо модели данных, вам, вероятно, лучше со стандартной реляционной структурой. – Patrick
«* но это относительно новая концепция *» - это на самом деле не так. Объектные реляционные концепции возвращаются к 80-м годам –
MySQL не имеет наследования, такого как PostgreSQL. –