Вставка данных в несколько таблиц через представление SQL - PullRequest
4 голосов
/ 27 мая 2010

Есть ли способ вставить данные в несколько таблиц через представление в MySQL?

Ответы [ 2 ]

3 голосов
/ 27 мая 2010

Справочное руководство по MySQL говорит об обновляемых представлениях:

Некоторые виды обновляются. То есть вы можете использовать их в таких выражениях, как UPDATE, DELETE или INSERT, чтобы обновить содержимое базовой таблицы. Чтобы представление было обновляемым, между строками в представлении и строками в базовой таблице должно быть отношение один к одному . Существуют также некоторые другие конструкции, которые делают представление недоступным для обновления.

Предложение WITH CHECK OPTION может быть задано для обновляемого представления, чтобы предотвратить вставки или обновления строк, кроме тех, для которых предложение WHERE в select_statement имеет значение true. Предложение WITH CHECK OPTION было реализовано в MySQL 5.0.2.

Вы можете найти всю статью здесь .

1 голос
/ 04 июля 2011

См. этот кусок справочного руководства MySQL:

Иногда возможно отображение нескольких таблиц для обновления, предполагая, что это может быть обработано с помощью алгоритма MERGE. За это для работы представление должно использовать внутреннее соединение (не внешнее соединение или UNION). Кроме того, только одна таблица в определении представления может быть обновлено, поэтому в предложении SET должны быть указаны только столбцы из одного из таблицы в представлении. Представления, использующие UNION ALL, запрещены даже хотя они могут быть теоретически обновляемыми, потому что реализация использует временные таблицы для их обработки.

Для обновляемого представления с несколькими таблицами INSERT может работать, если он вставляет в одну таблицу. УДАЛЕНИЕ не поддерживается.

INSERT DELAYED не поддерживается для представлений.

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