Зависит.UPDATE
или DELETE
может изменить БД.Если вы хотите узнать, может ли изменить базу данных, поиск без учета регистра для ключевых слов INSERT
, UPDATE
, DELETE
или ALTER
скажет вам, что есть вероятностьзапрос на изменение базы данных.Хотя ничто не мешает что-то вроде SELECT * FROM sometable WHERE something = 'update'
, так что следите за этим.
Если вы хотите узнать , будет ли действительно выполнено изменение , перед выполнением запроса вам нужно будет кое-что узнать о данных, уже находящихся в базе данных.Выполните SELECT
, используя то же предложение WHERE
, что и потенциально изменяющий данные оператор UPDATE
или DELETE
, и сравните данные, например (это может привести к путанице в запросах, использующих JOIN
или другие более сложныеособенности SQL).Более простым способом было бы использовать транзакции , чтобы внести изменения, проверить изменения, а затем откатить транзакцию, отменив изменения.
Если вы хотите предотвратить изменения , как показывают другие ответы, вам следует использовать управление ролями в вашей СУБД и не давать разрешения на выполнение изменяющихся запросов пользователю или роли, выполняющей эти запросы.