mysql之SQL模型

SQL模型(SQL mode):
    通过定义某些规定,限制用户行为,并定义对应的处理机制。

常见的模型:
        ANSI
            宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。

TRADITIONAL
            严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。

STRICT_TRANS_TABLES
            严格模式,进行数据的严格校验,不允许向一个支持事物的表中插入非法数据,报error错误。

STRICT_ALL_TABLES
            未设置的情况下,所有的非法数值都允许,返回警告信息。设置以后只要违反数据规则,都不允许填入,并返回错误。

ANSI QUOTES
            双引号和反引号作用相同,只能用来引用字段名称/表名等,单引号只能引用在字符串。mysql中默认3者可以随意引用。

IGNORE_SPACE
            在内建函数中忽略多余空格

查看默认的模型:
        mysql>SHOW GLOBAL VARIABLES LIKE ‘sql_mode‘;

修改模型:
        mysql>SET SESSION sql_mode=MODE1,...; 修改当前会话级别
        或者
        #vim /etc/my.cnf 配置文件中修改全局级别
            sql_mode=MODE1,...

实例:
        1.查看全局和会话的sql_mode的值
            mysql>SHOW GLOBAL VARIABLES LIKE ‘sql_mode‘;
            mysql>SHOW VARIABLES LIKE ‘sql_mode‘;
            或
            mysql>SELECT @@global.sql_mode;
            mysql>SELECT @@session.sql_mode;

2.修改sql_mode的值为strict_all_tables,并验证动态调整生效情况。
            mysql>SET GLOBAL sql_mode=‘strict_all_tables‘;
            mysql>SELECT @@session.sql_mode;
            mysql>SELECT @@global.sql_mode;
                STRICT_ALL_TABLES
            mysql>quit;

#mysql -uroot -p
            mysql>SELECT @@session.sql_mode;
                STRICT_ALL_TABLES

mysql>SET SESSION sql_mode=‘strict_trans_tables‘;
            mysql>SELECT @@session.sql_mode;
                STRICT_TRANS_TABLES
            mysql>[email protected]@global.sql_moed;
                STRICT_ALL_TABLES
            mysql>quit;

#mysql -uroot -p
            mysql>SELECT @@session.sql_mode;
                STRICT_ALL_TABLES

时间: 2024-10-14 05:05:17

mysql之SQL模型的相关文章

MySQL数据类型及sql模型

MySQL数据类型及sql模型 存储引擎,也被称为表类型: MyISAM表: 无事务,表锁     .frm: 表结构定义文件     .MYD: 表数据     .MYI: 索引 InnoDB表:事务,行锁     .frm: 表结构     .ibd: 表空间(数据和索引)     所有表共享一个表空间文件:     建议:每表一个独立的表空间文件:(修改配置文件在[mysqld]项下加入innodb_file_per_table = 1) MySQL:      在默认的mysql数据库中

MySQL互为主从模型实现基于SSL复制

一.MySQL复制 1.MySQL复制过程描述 MySQL主服务器上每一次发生的有可能产生修改或者产生修改的操作都会在主服务器上基于语句或基于行写入二进制日志,从服务器会在此期间启用一个IO线程不断的向主服务器发送请求,主服务器的二进制日志一但有更新,则会启用binlog dump线程,把数据发送给对方,从服务器接收到数据后则会将二进制日志的内容同步至本地的中继日志保存,而后启用SQL线程,将日志中的操作语句写入本地从服务器数据库: 2.mysql复制的同步和异步 同步:客户端向主服务器执行一条

数据库事务系列-MySQL跨行事务模型

说来和MySQL倒是有缘,毕业的第一份工作就被分配到了RDS团队,主要负责把MySQL弄到云上做成数据库服务.虽说整天和MySQL打交道,但说实话那段时间并没有很深入的理解MySQL内核,做的事情基本都是围绕着MySQL做管控系统,比较上层.好在周边都是MySQL内核神级人物,在他们的熏陶下多多少少对MySQL的一些基本知识有一些零碎的记录和模糊的认识,这些基础对于今天整理理解MySQL跨行事务模型非常重要.更重要的,有很多不解的地方也可以向大神请教. MySQL事务模型在网上也有很多的介绍,在

退役笔记一#MySQL = lambda sql : sql + ' Source Code 4 Explain Plan '

Mysql 查询执行过程 大致分为4个阶段吧: 语法分析(sql_parse.cc<词法分析, 语法分析, 语义检查 >) >>sql_resolver.cc # JOIN.prepare 生成逻辑查询plan(sql_optimizer.cc) >># JOIN.optimize 生成物理查询plan(sql_planner.cc) run the explain plan(sql_executor.cc) 退役笔记一#MySQL = lambda sql : sql

Oracle、MySql、Sql Server比对

1.    价格 MySql:廉价(部分免费):当前,MySQL採用双重授权(DualLicensed),他们是GPL和MySQLAB制定的商业许可协议.假设你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你能够遵循GPL协议免费使用MySQL.否则,你须要购买MySQLAB制定的那个商业许可协议.Windows $200,Unix或Linux自行安装免费,.Unix或Linux第三方安装$200. Sql Server:适中. SQL 2008 标准版:[1CPU 无限用户 R2 版

mysql执行sql文件

mysql -uspider_55haitao -pspider_55haitao -Dspider_55haitao</home/gphonebbs/Dump20161109.sql 方法一 使用cmd命令执行(windows下,unix或Linux在的其控制台下)[MySQL的bin目录]\mysql –u用户名 –p密码 –D数据库<[sql脚本文件路径全名],示例:D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql注意

如何在dos命令中启动mysql或sql server 服务器的一些操作

========================dos命令启动mysql或者sql srever 的步骤================= 一.dos命令启动mysql 1.进入dos命令窗口 2.启动mysql服务器,net start mysql 3.登录到mysql服务器中,mysql -hlocalhost -uroot -p123456() 4.首先可以先显示所有的数据库,show databases; 5.看到有哪些数据库可以使用数据库,use 数据库名; 6.进入到数据库中后,先看

ubuntu操作mysql新手sql教程

ubuntu操作mysql新手sql教程 1.启动mysql数据库: 效果: 2.进入mysql: 效果: 3.查看所有数据库: 效果: 4.创建数据库: 效果: 5.进入数据库: 效果: 6.创建表: 效果: 7.往表里插入数据: 效果: 8.显示字段及一些非空信息: 效果: 9.查看表内容: 效果: 10.退出mysql数据库: 效果: 11.关闭mysql数据库: 效果:

MySQL audit—SQL审计插件

自从MySQL5.6出现以来开始对json的支持后,使得在MySQL上增加了一些新特性,为此这一点让MySQL增加了一些新的插件支持,在这里就说一说MySQL的SQL审计插件,SQL审计插件并不是MySQL官方的,它是由macfee公司基于percona开发的,所以,在添加SQL审计的插件功能时需要去下载对应版本的MySQL audit插件(支持MariaDB),至于MySQL的插件安装比较简单,记得以前有说过MySQL的半同步复制功能时,其中的半同步复制也是插件,需要的可以参看:http://