![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Есть две таблицы с одинаковыми структурами.
В таблице №1 хранятся записи страниц сайта.
В таблице №2 хранятся записи переводов страниц сайта.
В таблицу №2 понадобилось вставить запись с языком по умолчанию из таблицы №1.
Как может выглядеть запрос INSERT что бы перенести записи из таблицы №1 в таблицу №2, или сделать UPDATE в таблице №2, если запись существует?
Неактивен
Используйте оператор REPLACE вместо INSERT:
https://dev.mysql.com/doc/refman/5.5/en/replace.html
Неактивен
Не совсем это подходит.
Решил немного переделать идею.
Есть две таблицы (№1 - 100 записей, №2 - 20 записей).
Возможно без PHP MySQL-запросом "сливать" записи из данных двух таблиц в таблицу №3 (структура всех таблиц одинаковая) и держать их постоянно в таком актуальном состоянии. Т.е. в таблице №3 должно быть 120 записей.
Неактивен
Возможно даже разбить на три запроса:
1. INSERT в №3 (всех еще не существующих таблиц)
2. UPDATE в №3 (всех сущесвующих записей)
3. DELETE в №3 (всех лишних записей)
Неактивен
Возможно вам подойдет представление
Неактивен
vasya написал:
Возможно вам подойдет представление
CREATE VIEW table3 AS SELECT * FROM table1 UNION ALL SELECT * FROM table2;
Очень полезный материал - спасибо.
И появились вопросы:
1. Создал представление - если изменилась структура данных таблицы - то в представлении она тоже поменяется?
2. Правильно же понимаю достаточно 1 раз выполнить запрос "CREATE VIEW" - и больше его выполнять не нужно, т.е. в SQL-запросах на выборку я уже буду обращатся не к таблицам №1 и №2 а всегда к VIEW-таблице №3.
3. Если используется UNION - то как будет с id-записями?
4. Если делается UPDATE в таблице "VIEW-таблице №3" при изменении записей в таблицах №1 и №2 - будет ли сохранятся данный UPDATE или он будет братся из таблиц №1 и №2.
Отредактированно Slorvengo (30.08.2015 10:05:29)
Неактивен
VIEW отдельно не хранится, хранится только запрос, производящий VIEW.
1. да
2. да, но никто не запрещает обращаться и к отдельным таблицам
3. Поведение не будет отличается от стандартного поведения UNION
4. Если VIEW является обновляемым, то UPDATE будет происходить в самих таблицах. Наличие UNION делает VIEW не обновляемым и прямые апдейты к нему запрещены
https://dev.mysql.com/doc/refman/5.5/en … ility.html
Неактивен