掌握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创建一个表然后让某一列的值固定为空格可以实现吗应该怎么写
可以实现,
原理是创建表,默认值为空字符串
拜托!

相关文章

高效SQL操作指南:轻松删除字段为空的记...
2024-12-31 22:25:18
MySQL DROP语句实用指南:表、索...
2024-12-15 19:03:48
MySQL一主多从:高效读写分离架构解析
2024-12-31 07:05:43
高效插入多行数据:SQL语句一次性操作技...
2024-12-23 19:17:18
MySQL自增功能实现指南:三种常用方法...
2024-12-18 08:44:47
Redis面试题精选:从基础到进阶解答
2024-12-21 20:22:19
MySQL三大存储引擎:InnoDB、M...
2024-12-29 21:12:11
MySQL三大索引类型详解及使用指南
2024-12-16 20:06:51
牛客网SQL刷题攻略:掌握BETWEEN...
2025-04-01 00:17:55
MySQL信息_schema深度解析:全...
2025-04-02 05:40:15最新文章
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
2
MySQL分区删除技巧与8.0版本新特性...
mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...
3
Python代码实现:如何判断三角形的三...
python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...
4
深度解析:MySQL查询语句执行顺序及优...
mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...
5
SQL教程:使用SUBSTRING和IN...
sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...
6
MySQL日期差异计算方法:轻松获取日期...
MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...
7
MySQL及SQL查询获取前10条数据方...
MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...
8
MySQL启动问题排查与解决指南
Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...
9
DbVisualizer添加MySQL数...
如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...
10
SQL字段默认值设置全攻略:轻松实现自动...
sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...