Использование режима безопасного обновления MySQL

(Bind Address) MySQL База данных

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

Предварительные условия

Вы должны создать таблицу базы данных с данными в базе данных MySQL, чтобы проверить использование безопасного режима обновления в MySQL.

Откройте терминал и подключитесь к серверу MySQL, выполнив следующую команду.

sudo mysql -u root

Выполните следующую команду, чтобы создать базу данных с именем test_db.

CREATE DATABASE test_db;

Выполните следующую команду, чтобы выбрать базу данных.

USE test_db;

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

CREATETABLE customers(
id INTNOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50),
address TEXT,
contact_no VARCHAR(15));

Выполните следующий запрос INSERT, чтобы вставить четыре записи в таблицу клиентов.

INSERT INTO `customers` (`id`, `name`, `email`, `address`, `contact_no`) VALUES

(‘4001’, ‘Laboni Sarkar’, ‘laboni@gmail.com’, ’34, Dhanmondi 9/A, Dhaka.’, ‘01844767234’),

(‘4002’, ‘Tahsin Ahmed’, ‘tahsin@gmail.com’, ‘123/1, Jigatola, Dhaka.’, ‘015993487812’),

(‘4003’, ‘Hasina Pervin’, ‘hasina@gmail.com’, ‘280, Shantibagh, Dhaka.’, NULL),

(‘4004’, ‘Mehrab Ali’, ‘ali@yahoo.com’, ’78, paltan, Dhaka..’, ‘01727863459’);

Проверка текущего значения режима безопасного обновления

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

SHOW VARIABLES LIKE «sql_safe_updates»;

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

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

Выполните команду обновления и удаления после включения безопасного режима обновления

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

SET SQL_SAFE_UPDATES = 1;

SHOW VARIABLES LIKE «sql_safe_updates»;

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

Выполнить запрос на UPDATE

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

UPDATE customers SET contact_no = ’02-458934679′;

В следующем выводе показана ошибка, созданная для запроса UPDATE без предложения WHERE, и операция UPDATE не выполнялась.

Предположим, что приведенный выше запрос UPDATE будет выполняться из любого графического пользовательского интерфейса, такого как PHPMyAdmin, где безопасный режим обновления отключен по умолчанию. В этом случае операция обновления будет выполняться на основе разрешения пользователя. Если пользователь даст разрешение, то поле contact_no всех записей таблицы клиентов будет обновлено; в противном случае ничего не будет сделано.

Выполнить запрос DELETE

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

DELETE FROM customers;

В следующем выводе показана ошибка, созданная для запроса DELETE без предложения WHERE, и операция DELETE не выполнялась.

Предположим, что приведенный выше запрос DELETE будет выполняться из любого графического пользовательского интерфейса, такого как PHPMyAdmin, где безопасный режим обновления отключен по умолчанию. В этом случае операция удаления будет выполняться на основе разрешения пользователя, например запроса на обновление. Если пользователь даст разрешение, то все записи таблицы клиентов будут удалены; в противном случае ничего не будет сделано.

Выполните команду обновления и удаления после отключения режима безопасного обновления

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

SET SQL_SAFE_UPDATES = 0;

SHOW VARIABLES LIKE «sql_safe_updates»;

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

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

UPDATE customers SET address = ‘Dhaka’;

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

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

SELECT * FROM customers;

Следующий вывод показывает, что строковое значение обновило все значения поля адреса, ’ Dhaka’.

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

DELETE FROM customers;

Следующий вывод показывает, что операция удаления была завершена без ошибок.

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

SELECT * FROM customers;

Следующий вывод показывает, что все записи таблицы клиентов были удалены.

Заключение

Безопасный режим обновления MySQL является важной функцией для предотвращения нежелательных обновлений или удаления операций по ошибке. Способ включения и отключения этого режима путем установки необходимой переменной был показан в этом руководстве. Как работают операции обновления и удаления без предложения WHERE на основе режима безопасного обновления, также показано здесь с помощью таблицы.

Читайте также:  Как создать таблицу в SQLite?
Оцените статью
bestprogrammer.ru
Добавить комментарий