MySQL - 为每个人启用安全更新

标签 mysql phpmyadmin database-administration

我正在教一门数据库课,我让我的学生通过 phpMyAdmin 连接到 MySQL 数据库来练习查询等......

我们现在已经到了学习 SQL UPDATE 语句的地步,我想确保有人不会在没有 WHERE 子句的情况下发出 UPDATE因此更新整个表...

我假设 sql_safe_updates 默认设置为 1,但在我用于类(class)的基于云的服务器上似乎并非如此。我似乎找不到任何地方记录如何为 MySQL 实例中的所有用户设置 sql_safe_updates

因此,我正在寻找这些选项中的任何一个是否可用并且是否适用于这种情况:

  1. 我可以通过配置文件或其他方法将 sql_safe_updates 设置为“1”来启动 MySQL 吗?
  2. 当用户通过 phpMyAdmin 连接到数据库时,我可以在 phpMyAdmin 中创建一个运行 SET sql_safe_updates=1 的启动脚本吗?

任何帮助将不胜感激,我真的不认为这会带来如此大的挑战!

最佳答案

您可以在设置中关闭或使用

SET SQL_SAFE_UPDATES=0;
your statement; 
SET SQL_SAFE_UPDATES=1;

或者反过来。

SET SQL_SAFE_UPDATES=1;
your statement; 
SET SQL_SAFE_UPDATES=0;

只是不要忘记在每个语句的末尾使用分号。

如果使用 MYSQL workbench 使用 编辑 -> 首选项 -> SQL 编辑器 -> SQL 编辑器 删除没有 WHERE 子句的禁止 UPDATE 和 DELETE 语句(安全更新)

希望对你有帮助

关于MySQL - 为每个人启用安全更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26719069/

相关文章:

mysql - ActiveRecord - 将现有行 ID 映射到类记录

Mysql 选择 order by date desc 然后按列分组

mysql - PHPMyAdmin 登录后显示空白屏幕

oracle - 如何查看 Oracle 中查询转换器生成的查询

oracle - 如何识别所有全局临时表

mysql - mysql_install_db 会删除现有数据库吗?

sql - 递归和MYSQL?

mysql - 无法创建 mysql 表 : foreign key constraint issue

php - 将排名表存储在 mysql 表中

oracle - 来自 dbms_metadata.get_ddl 的自定义表 DDL