Автоматическое заполнение таблицы sql на основе записей в двух разных таблицах - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть две таблицы (назовем их таблицами A и B), каждая из которых содержит данные о магазинах. Таблица A содержит данные об имени магазина, адресе и номере телефона, а таблица b содержит данные о времени открытия и закрытия магазинов, координатах местоположения, логотипе и т. Д. Я использую стороннее приложение, которое заполняет данные в таблицах A и B. создать новую таблицу (таблица C) и иметь все необходимые столбцы в этой таблице. Могу ли я что-нибудь сделать, чтобы каждый раз, когда в таблицу A и B вносилась запись, данные также добавлялись в таблицу C? Если да, то как мне это сделать? (Я не могу изменить стороннее приложение)

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Триггеры не очень хороши в MySQL, но если вам нужен только доступ только для чтения к этим данным, вы можете создать представление для получения этого. Однако, будьте осторожны, представления в MySQL тоже не очень хороши, если вы присоединитесь к ним.

что-то вроде:

create view shop_all_v as
  select 
    a.shop_name, a.address, a.phone_number, b.opening_time, b.closing_time
  from table_a a, table_b b
  where a.shop_id = b.shop_id;

Другой способ - создать запланированное задание, которое обновит таблицу в коде приложения. Не самая лучшая вещь, но с MySQL вы немного застряли. Вы можете создавать столбцы меток времени, которые помогут отслеживать, когда произошла синхронизация. Это не так уж и безумно, поскольку это стандартная практика для обработки совокупных данных, просто не рекомендуется, когда вам нужна надежность в реальном времени.

1 голос
/ 24 декабря 2011

Звучит как идеальная работа для триггера в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...