MySQL 的严格模式(Strict Mode)是一组 SQL 模式,用于控制 MySQL 在处理某些类型的语句时的行为。严格模式旨在确保数据的完整性和一致性,防止一些常见的错误和不规范的操作。
MySQL 提供了几种不同的严格模式:
严格模式适用于需要确保数据完整性和一致性的应用场景,例如:
原因:MySQL 没有启用严格模式,导致插入无效数据时不会报错。
解决方法:
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO';
或者修改 MySQL 配置文件(通常是 my.cnf
或 my.ini
),在 [mysqld]
部分添加:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
然后重启 MySQL 服务。
原因:MySQL 没有启用 ERROR_FOR_DIVISION_BY_ZERO
模式。
解决方法:
SET GLOBAL sql_mode = CONCAT(@@sql_mode, ',ERROR_FOR_DIVISION_BY_ZERO');
或者修改 MySQL 配置文件,在 [mysqld]
部分添加:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
然后重启 MySQL 服务。
通过启用严格模式,可以显著提高数据库的数据完整性和一致性,减少潜在的错误和不规范操作。
领取专属 10元无门槛券
手把手带您无忧上云