首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL或者MariaDB里面sql_mode的设置详解

但是需要注意的问题是,如果数据库运行在严格模式下,并且你的存储引擎不支持事务(现在基本上都是用的InnoDB引擎了,不支持事务的较少见),那么有数据不一致的风险存在,比如一组sql中有两个dml语句,如果后面的一个出现问题...='NO_ZERO_IN_DATE';允许2015-00-02、2015-03-00 这种非法日期,但是实际上插入的是0000-00-00。...插入2013-02-01这种正常的数据是没问题的。...,如果在SELECT中的列,没有GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。...对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。语句被放弃并滚动。

2.2K20

MySQL学习笔记(长期更新)

入时,如果不明确给字段赋值,那么系统会把设置的默认值自动赋值给字段。...约束类型: 默认约束:插入时如果没有指定值,则插入默认值 主键约束:保证数据的唯一性 外键约束:预防破坏表之间连接的行为 非空约束 :字段值不能为空 唯一性约束:字段值不能重复 自增约束:字段入时自动...语句中的错误,所以如果事务中的某SQL执行出现错误后提交会出现事务不一致的问题,如mytrans入时出现错误,inventory表执行成功,库存字段数据-5,这样会导致数据不一致的问题。...为解决该问题,可以使用rollback进行回滚。 rollback回滚:一个事务中,如果有一个SQL语句执行失败,那么当前事务便不会提交,相当于当前事务中的SQL并没有执行。...19-日志(上):系统出现问题,如何及时发现? 通用查询日志 通用查询日志记录了所有用户的连接开始时间和截至时间,以及发给MySQL数据库服务器的所有SQL指令。

93410
您找到你想要的搜索结果了吗?
是的
没有找到

PG备份恢复:multiple primary keys for table t1 are not allowed

主要介绍使用pg_dump及恢复过程中遇到的一个问题。...1、问题 使用pg_dump -c导出后,通过psql导入时报下面的错误: ERROR: relation "t1" already exists ERROR: duplicate key value...psql < all.sql 3、问题分析 1)通过-c导出时重建database前先drop 2)通过-C导出时导出时导出create database语句 3)每次导入时,虽然库中已有导入的表结构和部分数据...,及先执行drop database语句清空,应该不会出现表已存在等错误,但是这种错误确实出现了。...原来,入时,只要已有连接连着这个database,drop语句就不会执行成功,导致清理数据库失败,后续执行对应语句时会报已存在、重复键、多个主键等错误。

2.9K30

PostgreSQL逻辑备份恢复–pg_dump导出及psql导入实例

主要介绍使用pg_dump及恢复过程中遇到的一个问题。...1、问题 使用pg_dump -c导出后,通过psql导入时报下面的错误: ERROR:  relation "t1" already exists ERROR:  duplicate key value...psql < all.sql 3、问题分析 1)通过-c导出时重建database前先drop 2)通过-C导出时导出时导出create database语句 3)每次导入时,虽然库中已有导入的表结构和部分数据...,及先执行drop database语句清空,应该不会出现表已存在等错误,但是这种错误确实出现了。...原来,入时,只要已有连接连着这个database,drop语句就不会执行成功,导致清理数据库失败,后续执行对应语句时会报已存在、重复键、多个主键等错误。

1K20

52条SQL语句性能优化

查询的结果用于“、删、改”的不能加nolock !查询的表属于频繁发生页分裂的,慎用nolock !...一个关键的问题是否用到索引。 22,IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 23,尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...39,索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。 为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

78110

Mysql性能优化一:SQL语句性能优化

查询的结果用于“、删、改”的不能加nolock !查询的表属于频繁发生页分裂的,慎用nolock !...一个关键的问题是否用到索引。 22,IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 23,尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...39,索引创建规则:  表的主键、外键必须有索引;  数据量超过300的表应该有索引;  经常与其他表进行连接的表,连接字段上应该建立索引;  经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。 ...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。  为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

1.9K20

实用排坑帖:SQL语句性能优化操作策略大全

一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...39、索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...当使用mysqldump时请使用–opt; 备份之前检查和优化表; 为了更快的进行导入,入时临时禁用外键约束。...; 为了更快的进行导入,入时临时禁用唯一性检测; 每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长; 通过自动调度脚本监控复制实例的错误和延迟; 定期执行备份。

82621

52 条 SQL 语句性能优化策略,建议收藏!

查询的结果用于“、删、改”的不能加nolock !查询的表属于频繁发生页分裂的,慎用nolock !...一个关键的问题是否用到索引。 22 IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 23 尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...39 索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。 为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

90600

52 条 SQL 语句性能优化策略

一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...39、索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段...有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...当使用mysqldump时请使用–opt; 备份之前检查和优化表; 为了更快的进行导入,入时临时禁用外键约束。...; 为了更快的进行导入,入时临时禁用唯一性检测; 每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长; 通过自动调度脚本监控复制实例的错误和延迟; 定期执行备份

62160

后端程序员必备:SQL高性能优化方案!50条优化,建议马上收藏!

一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...39、索引创建规则:  表的主键、外键必须有索引;  数据量超过 300 的表应该有索引;  经常与其他表进行连接的表,连接字段上应该建立索引;  经常出现在 WHERE 子句中的字段,特别是大表的字段...有时候 MySQL 会使用错误的索引,对于这种情况使用 USE INDEX,检查使用 SQL_MODE=STRICT 的问题,对于记录数小于5的索引字段, UNION 的时候使用LIMIT不是是用OR...当使用 mysqldump 时请使用 –opt; 备份之前检查和优化表; 为了更快的进行导入,入时临时禁用外键约束。...; 为了更快的进行导入,入时临时禁用唯一性检测; 每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长; 通过自动调度脚本监控复制实例的错误和延迟; 定期执行备份。

99201

52 条SQL语句性能优化策略

查询的结果用于“、删、改”的不能加nolock ! 查询的表属于频繁发生页分裂的,慎用nolock !...一个关键的问题是否用到索引。 22 IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 23 尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...39 索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。 为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

53230

SQL优化

一个关键的问题是否用到索引。 IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该建在选择性高的字段上...的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...,使用SHOW PROCESSLIST查看慢的和有问题的查询,开发环境中产生的镜像数据中 测试的所有可疑的查询。...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。 为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

68120

面试官:熟悉SQL优化吗?我只知道20种,其实远不止...

面试的时候,面试官很喜欢这么问: 熟悉SQL优化吗? 面对这种问题,不要害怕,田哥为你准备下面52条SQL语句性能优化策略。实在不行就多背几条,这样应对你的燃眉之急还是没问题。...一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...39、索引创建规则: 表的主键、外键必须有索引;数据量超过 300 的表应该有索引;经常与其他表进行连接的表,连接字段上应该建立索引;经常出现在 WHERE 子句中的字段,特别是大表的字段,应该建立索引...有时候 MySQL 会使用错误的索引,对于这种情况使用 USE INDEX,检查使用 SQL_MODE=STRICT 的问题,对于记录数小于5的索引字段, UNION 的时候使用LIMIT不是是用OR...当使用 mysqldump 时请使用 –opt;备份之前检查和优化表;为了更快的进行导入,入时临时禁用外键约束。

47350

怎么使用Python攻击SQL数据库

问题是,我们允许直接执行从客户端传递的值到数据库,却不执行任何类型的检查或验证,所以SQL注入就是依赖于这种类型的漏洞。 在数据库查询中使用用户输入时,可能存在SQL注入漏洞。...试图阻止Python SQL入时,需要考虑许多特殊的字符和情况。还好,数据库适配器提供了内置的工具,可以通过使用查询参数来防止Python SQL注入。...cursor.execute("SELECT admin FROM users WHERE username = %(username)s", {'username': username}); 在这些语句中...所以这就是SQL组合的用武之地。 现在已经知道使用字符串值表达式来编写SQL是不安全的。幸好,Psycopg提供了一个名为Psycopg的模块。帮助我们安全地编写sql查询。...与前面的示例一样,psycopg使用时将所有查询参数绑定为文字。但是,使用sql()时,需要使用sql.Identifier()或sql.Literal()显式地注释每个参数。

2K10

4.表记录的更新操作

表记录的⼊ 批量⼊多条记录 例如: insert…select⼊结果集 注意:字段列表1与字段列表2的字段个数必须相同,且对应字段的数据类型尽量保持⼀致。...表记录的修改 表记录的删除 使⽤truncate清空表记录 从逻辑上说,该语句与“delete from表名”语句的作⽤相同,但是某些情况下,两者使⽤上有所区 别。...⼦查询 如果⼀个select语句能够返回单个值或者⼀列值,且该select语句嵌套在另⼀个SQL语句(例如select 句、insert语句、update语句或者delete语句)中,那么该select...语句称为“⼦查询”(也叫内层查询), 包含⼦查询的SQL语句称为“主查询”(也叫外层查询)。...⼦查询⼀般⽤主查询的where⼦句或having⼦句中,与⽐较运算符或者逻辑运 算符⼀起构成where筛选条件或having筛选条件。

1.2K30

Java 程序员常犯的 10 个 SQL 错误

SQL是说明性语言而非面向对象或是命令式编程语言。SQL中要写个查询语句是很简单的。但在Java里类似的语句却不容易,因为程序员不仅要反复考虑编程范式,而且也要考虑算法的问题。...另一个误解出现在对于NULL NOT IN anti-joins的应用中。 解决方法: 好好的训练你自己。当你写SQL时要不停得想到NULL的用法: 这个NULL完整性约束条件是正确的?...解决方法: 假如你各个步骤中有从各种表的查询操作,好好想想是否可以表达你的查询操作单条语句中。...FOR UPDATE然后INSERT或UPDATE等更新插入时,请三思。你完全可以使用一个更简单的MERGE语句来远离冒险竞争条件。...如果你的所有记录都插入到同一个表时,那么就创建一个带有一条SQL语句以及附带很多值集合的插入批处理 句。

1.5K20

程序员SQL 时常犯的10个错误

SQL是说明性语言而非面向对象或是命令式编程语言。SQL中要写个查询语句是很简单的。但在Java里类似的语句却不容易,因为程序员不仅要反复考虑编程范式,而且也要考虑算法的问题。...另一个误解出现在对于NULL NOT IN anti-joins的应用中。 解决方法: 好好的训练你自己。当你写SQL时要不停得想到NULL的用法: 这个NULL完整性约束条件是正确的?...解决方法: 假如你各个步骤中有从各种表的查询操作,好好想想是否可以表达你的查询操作单条语句中。...FOR UPDATE然后INSERT或UPDATE等更新插入时,请三思。你完全可以使用一个更简单的MERGE语句来远离冒险竞争条件。...如果你的所有记录都插入到同一个表时,那么就创建一个带有一条SQL语句以及附带很多值集合的插入批处理 句。

12910

面试官:谈一谈如何避免重复下单?

一、问题背景 最简单的:DB 事务。如创建订单时,同时往订单表、订单商品表数据,这些 Insert 须在同一事务执行。...问题最后还是如何保证服务接口的幂等性。 2.1 如何判断请求是重复的 插入订单前,先查一下订单表,有无重复订单? 难以用SQL条件定义到底什么是“重复订单” 订单的用户、商品、价格一样就是重复订单?...往 DB 记录时,一般不提供主键,而由 DB 入时自动生成。这样重复的请求就会导致插入重复的数据。...因此可利用 DB 的“主键唯一约束”,数据时带上主键,以此实现创建订单接口的幂等性。 给 Order 服务添加一个“orderId 生成”的接口,无参,返回值就是一个【全局唯一】订单号。...订单服务订单表中插入数据的时候,执行的这些重复 INSERT 语句中的主键,也都是同一个订单号。而 DB 唯一约束保证,只有一次 INSERT 执行成功。

43620

SQL优化的意义是什么?你用过哪些优化方式

SQL性能问题已经逐步发展成为数据库性能的首要问题,80%的数据库性能问题都是因SQL而导致。面对日益增多的SQL性能问题,如何下手以及如何提前审核已经成为越来越多的程序员必须要考虑的问题。...查询的结果用于“、删、改”的不能加nolock !查询的表属于频繁发生页分裂的,慎用nolock !...一个关键的问题是否用到索引。 22,IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。 23,尽量将数据的处理工作放在服务器上,减少网络的开销,如使用存储过程。...39,索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引...备份之前检查和优化表。为了更快的进行导入,入时临时禁用外键约束。 为了更快的进行导入,入时临时禁用唯一性检测。每一次备份后计算数据库,表以及索引的尺寸,以便更够监控数据尺寸的增长。

1.3K20

DataGrip激活码,亲测有效。DataGrip2021.2

一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT的问题,对于记录数小于5的索引字段,UNION的时候使用LIMIT不是是用OR。...当使用mysqldump时请使用–opt; 备份之前检查和优化表; 为了更快的进行导入,入时临时禁用外键约束。...一个关键的问题是否用到索引。 22、IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数。...当使用mysqldump时请使用–opt; 备份之前检查和优化表; 为了更快的进行导入,入时临时禁用外键约束。

28.2K20
领券