Chinaunix首页 | 论坛 | 博客
  • 博客访问: 715214
  • 博文数量: 147
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 10:36
文章分类

全部博文(147)

文章存档

2011年(1)

2010年(1)

2009年(35)

2008年(110)

我的朋友

分类: Mysql/postgreSQL

2008-11-26 19:55:14

mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等!
 
查看默认的sql mode模式:
select @@sql_mode;
我的数据库是:
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在此模式下面,如果插入的数据的长度大于定义的长度,那么就会报错!
 
set session sql_mode='REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI';
在这种模式下面:插入的数据的长度大于定义的时候,就会截取,并警告,但是可以插入进去
session表示只在本次中有效
global:表示在本次连接中不生效,而对于新的连接就生效
 
启用NO_BACKSLASH_ESCAPES模式,使反斜线成为普通字符,在导入数据时候,如果数据中有反斜线,启用这个模式是个不错的选择
 
启用PIPES_AS_CNCAT模式,将||看成是普通字符串
 
常用的sql mode:
 sql mode值  说明
 ANSI  'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE和ANSI组合',这种模式使语法和行为更符合标准的sql
 STRICT_TRANS_TABLES  使用与事务和非事务表,严格模式
 TRADITIONAL  也是严格模式,对于插入不正确的值给出错误而不是警告。用在事务时,只要发生错误就立即回滚
阅读(736) | 评论(0) | 转发(0) |
0

上一篇:策略模式

下一篇:命令模式command

给主人留下些什么吧!~~