电子商务网站建设的方法与流程,网站备案制度,东营网站建设制作,网站建设方案 备案1、sql_mode是MySQL中的一个系统变量#xff0c;用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性#xff0c;包括数据校验、日期处理、空值处理等。
下面是一些常见的sql_mode模式及其作用#xff1a;
STRICT_ALL_TABLES#xff1a;为所有存储… 1、sql_mode是MySQL中的一个系统变量用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性包括数据校验、日期处理、空值处理等。
下面是一些常见的sql_mode模式及其作用
STRICT_ALL_TABLES为所有存储引擎开启严格SQL模式。无效的数据值被拒绝。
STRICT_TRANS_TABLES启用严格的事务模式如果插入操作违反约束条件或类型不匹配则会抛出错误。
NO_ENGINE_SUBSTITUTION如果指定了一个不存在的存储引擎该模式会报错而不是自动替换为默认存储引擎。
ONLY_FULL_GROUP_BY要求GROUP BY子句中的每个列都在SELECT列表中显式出现这样可以避免隐含的聚合行为和结果不准确的情况。
ERROR_FOR_DIVISION_BY_ZERO当除数为0时会抛出错误而不是返回NULL值。 TRADITIONAL启用所有传统MySQL的严格模式。
NO_AUTO_VALUE_ON_ZERO 该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。 STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制。
NO_ZERO_IN_DATE 在严格模式下,禁止在日期中使用“0”值例如“0000-00-00”将被视为无效值。
NO_ZERO_DATE 在严格模式下,设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。
NO_AUTO_CREATE_USER 禁止GRANT创建密码为空的用户
PIPES_AS_CONCAT 将||视为字符串连接运算符(与CONCAT()相同)而不是OR的同义词。
ANSI_QUOTES 启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符
ALLOW_INVALID_DATES 不要执行完整的日期检查。只检查月份是否在1到12的范围内Day的取值范围为1 ~ 31。
2、查询sql_mode
show VARIABLES like sql_mode;
//或者
select sql_mode
3、设置sql_mode
执行sql语句设置
SET GLOBAL sql_mode modes; //全局设置
SET SESSION sql_mode modes; //只在当前会话生效
在配置文件中设置
[mysqld] sql_modemodes
注意modes之间用“,”隔开在配置文件设置后需要重启