数据库

MySQL属性SQL_MODE学习笔记

2019-10-13  本文已影响0人  smileNicky

最近在学习《MySQL技术内幕:SQL编程》并做了笔记,本博客是一篇笔记类型博客,分享出来,方便自己以后复习,也可以帮助其他人

SQL_MODE:MySQL特有的一个属性,用途很广,可以通过设置属性来实现某些功能支持

 # 全局的SQL_MODE 
 SELECT @@global.sql_mode;
 # 当前会话的SQL_MODE
 SELECT @@session.sql_mode; 

SQL_Mode默认值是为空的,对于SQL_mode的设置可以在mysql配置文件(my.ini或者my.cnf),或者直接通过命令设置

严格模式:是指将sql_mode设置为STRICT_TRANS_TABLES或者STRICT_ALL_TABLES,设置为严格模式是不允许非法的操作的,比如将Null值写到非空要求的字段里,或者写入不合法的日期数据,比如'2019-09-40'

SET GLOBAL sql_mode ='STRICT_TRANS_TABLES';
SET GLOBAL sql_mode ='STRICT_ALL_TABLES';

数据原本有数据的情况,就不要直接set,用concat连接起来:

set @@session.sql_mode=concat(@@sql_mode,',IGNORE_SPACE');
CREATE TABLE t (a CHAR(10));
INSERT INTO t SELECT 'a';
在这里插入图片描述

在默认情况下查询是这样的,如果设置PAD_CHAR_TO_FULL_LENGTH,查询出来的是:


在这里插入图片描述

下面给出几种选项的组合:

上一篇下一篇

猜你喜欢

热点阅读