掌握MySQL sql_mode设置:优化数据库操作与安全性

创始人
2024-12-29 03:08:58
0 次浏览
0 评论

Mode是怎样设置的

正确设置mysql的sql_mode。
正确设置mysql的sql_mode是一个很容易被忽视的变量。
默认值为null通过这个设置,可能会允许一些非法操作,比如允许插入一些非法数据。
在生产环境中,这个值必须设置为严格模式,所以在开发和测试环境中也必须设置数据库,这样在开发和测试阶段可能会遇到问题。
sql_mode的常用值如下:Only_FULL_GROUP_BY:对于GROUPBY聚合操作,如果SELECT中的列没有出现在GROUPBY中,则这条SQL无效,因为该列不在GROUPBY子句中:该值影响列的插入具有自动增量。
默认情况下,输入0或NULL表示生成下一个自增值。
如果用户想要输入0值并且该列自动递增,则此选项非常有用。
STRICT_TRANS_TABLES:在此模式下,如果无法将值插入到事务表中,则中止当前操作,并且对非事务表没有限制NO_ZERO_IN_DATE:在严格模式下,日期和月份不能为零。
NO_ZERO_DATE:设置此值,mysql数据库不允许插入零日期,插入零日期将生成错误而不是警告。
ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据除以零,则会生成错误而不是警告。
如果未提供模式,则当数据除以零时,MySQL将返回NULLNO_AUTO_CREATE_USER:阻止GRANT创建密码为空的用户NO_ENGINE_SUBSTITUTION:如果禁用或未编译所需的存储引擎,则抛出错误。
当未设置此值时,将使用默认存储引擎并抛出PIPES_AS_CONCAT异常:考虑“||”作为字符串连接运算符而不是OR运算符,这与Oracle数据库相同,也与.Concat字符串连接功能与ANSI_QUOTES类似:启用ANSI_QUOTES后,不能使用双引号将字符括起来。
解释为标识符的字符串ORACLEsql_mode设置相当于:PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER。
如果使用mysql,要延续使用Oracle的习惯,可以设置mysql的sql_mode如下:在my.cnf中添加如下配置[mysqld]sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION、PIPES_AS_CONCAT、ANSI_QUOTES'

使用SQL语句create创建一个表然后让某一列的值固定为空格可以实现吗应该怎么写

可以实现,

原理是创建表,默认值为空字符串

创建表A(keyIdint,infovarchar(20)default'')goinsertinA(keyId)values(1);goselect*fromAGotruncatTableAdropTableA

拜托!

文章标签:
sql_mode MySQL
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
SQL必备:详解常用字符串函数及数据类型... sql常用的字符串函数都有哪些常用的字符串函数有:1.字符转换功能1.ASCII...