Есть ли способ создать виртуальную таблицу, которую можно сравнить с таблицей после редактирования? - PullRequest
0 голосов
/ 12 сентября 2018


У меня есть таблица [подрядчик с], в которой можно редактировать только одно поле [жесть]. Если пользователь пытается изменить данные в другом поле, они не должны обновляться. Интересно, хорошая ли идея сделать представление c перед редактированием, а затем сравнить представление с отредактированной таблицей. Но для этого потребуются два сценария - до и после обновления.
Я мог бы также сделать проверку для каждого отдельного поля, кроме олова, но есть «много» полей.
Ищите лучший и наиболее оптимальный способ решения этой задачи.

1 Ответ

0 голосов
/ 12 сентября 2018

Это слишком долго для комментария. Есть много способов сделать то, что вы описываете. «Взгляды» не являются одним из них. В SQL view является сохраненным запросом. Он не хранит значения. Это определенно не поможет, потому что представление меняется с базовыми таблицами.

Если может быть обновлен только один столбец, то один метод заключается в реализации триггера, который проверяет предыдущую и последующую версии записи и разрешает обновления только тогда, когда другие поля не изменяются.

Узнать о триггерах можно в документации .

Альтернативный механизм - сделать таблицу недоступной для обновления , за исключением для разрешений update для одного столбца. Вы можете узнать о разрешениях в документации .

Если по какой-то причине вы хотите выполнить всю работу в приложении, транзакции могут вступить в действие. Вы не совершите транзакцию, пока обновление не будет соответствовать вашим требованиям. Транзакции объясняются в документации .

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