У меня есть две таблицы с одинаковой структурой, A и B. Определенное приложение написано так, что оно всегда записывает одни и те же данные в обе таблицы.
После обсуждения с коллегой возможности экономии места на диске мне стало интересно, может ли mysql или postgresql создавать на столе в качестве «псевдонима» или «символической ссылки» другого.
Я хочу, чтобы поведение было очень похоже на символическую ссылку на мягкий файл; где чтение либо из самой символической ссылки, либо из ее цели даст тот же результат, а запись в любую из них обновит цель.
mysql
postgresql
user50849
источник
источник
Ответы:
Насколько я знаю, новый Postgresql позволяет вам иметь
INSTEAD OF
триггеры на представлениях. Таким образом, наличие одной таблицы, одного представления какSELECT * FROM table1
иINSTEAD OF
триггера дляinsert, update, delete
должно работать на вас. Этот подход не будет работать в Mysql, хотяисточник
В MySQL можно (используя только механизм хранения MyISAM) создать таблицу с нуля, используя символические ссылки. Это возможно в Linux и Windows (используя жесткие ссылки):
Вот мои прошлые посты на эту тему
Однако то, что вы предлагаете, должно быть сделано за пределами MySQL в Linux.
Для этого примера
ШАГ 01) Создать таблицу1
ШАГ 02) Создайте три символические ссылки для имитации TableB
ШАГ 03) Попробуйте вставить в таблицу 1 и прочитать из таблицы 2. Тогда попробуйте обратное.
Если все ведет себя нормально, то вот как вы можете это сделать.
ПРЕДОСТЕРЕЖЕНИЕ
источник