MySQL
牛哞哞杂记
终身学习,成为更好的自己,公众号:牛哞哞杂记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MySQL】You can‘t specify target table ‘表名‘ for update in FROM clause”
出现此问题的sql语句如下: update test set take=(select MAX(id) from test) where userName='1' 翻译是:不能在FROM子句中为更新指定目标表’test’ 原因在于,在mysql中,不能先select出同一表中的某些值,再update这个表。 解决办法: 把查询语句的结果集当作一个表,自我查询一遍,再进行修改。 sql如下: select a.id from (select MAX(id) id from test) as a 加上修改,原创 2020-10-30 09:09:11 · 174 阅读 · 0 评论 -
【MySQL】查询如果字段为null,就用0或其他值代替 sql
实现: 查询如果字段为null,就用0或其他值代替 1、使用 isnull sql语句: select IFNULL(score,0) score from test 2.使用 case when select case when 字段 is null then 0 else 字段 end from 表名 select case when score is null then 0 else score end from test ...原创 2020-10-23 10:19:53 · 13181 阅读 · 0 评论 -
【MySQL】设置定时任务
需要实现一个功能:定时去更新某张表的数据 所以想到了用事件和存储过程 过程: ① 创建存储过程 ② 创建事件,调用存储过程 ③ 启动定时器 ④ 开启事件 具体可查看以下sql: DROP PROCEDURE IF EXISTS insertUser; -- 删除存储过程 DROP EVENT IF EXISTS temp_event; -- 删除事件 -- 创建存储过程 CREATE PROCEDURE insertUser() BEGIN TRUNCATE TABLE test.user; -- 清原创 2020-08-29 14:54:12 · 253 阅读 · 0 评论 -
【MySQL】自定义函数
实现功能:MySQL自定义函数 MySQL的函数很强大,但有时我们需要功能实现不了时,就得需要自己定义函数了 流程: 1.新建函数(以图片形式) (1)选择新建函数 (2)填写参数名称和类型 这个类型要和需要使用到这个自定义函数地方的值类型一致 比如sql select countScore(score) from student 这里的 countScore就是我们自定义的函数,定义参数类型时,类型要和score一致 (3)返回的类型 (4)开始写函数主体 举个例子: BEGIN #Routin原创 2020-05-30 17:42:56 · 334 阅读 · 0 评论 -
Data truncation: Out of range value for column 'xxx' at row 1
java 报错: Data truncation: Out of range value for column ‘maxStrength’ at row 1 报错原因: 插入数据库的数据超出了 字段定义能存储的长度 报错详情: 在字段里设置 该字段的类型是float 长度是4 保留小数点后两位 但添加的数据是整数三位数时,就报错了 解决办法: 修改数据库里报错字段的长度 ...原创 2020-04-03 17:34:41 · 24194 阅读 · 3 评论 -
[Err] 1093 - You can't specify target table ' ' for update in FROM clause 或者实现修改除某列以外的所有数据
使用mysql时,运行一段修改语句报错 问题: [Err] 1093 - You can’t specify target table ’ ’ for update in FROM clause 原因: 这个错误的原因是,更新这个表的同时又查询了这个表。 我为了实现修改除某列以外的所有数据,所以写了一个sql,出现了这样的错误。 解决办法: 可以改变思路,在select外边套一层,让数据库认为你不...原创 2019-11-13 14:22:03 · 1255 阅读 · 0 评论 -
mysql sql查询某日期字段加两个小时后的时间
完成功能:查询表里某个日期字段增加两个小时后的时间 在mysql中有DATE_ADD()函数,可用于查询表里某个日期字段增加两个小时后的时间 sql: 举例,有一张表名为table,时间字段名为startTime SELECT id,startTime,date_add(startTime,INTERVAL 2 HOUR) startTimeNew from table where id=144...原创 2019-11-11 12:40:44 · 6114 阅读 · 0 评论 -
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException或[Err] 1062 - Duplicate
问题:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘oqKQM5LBRj2iwTG6zzGwlgPWuNjE-2019-10-31 14:38:14’ for key ‘openid’ 原因:关键字’openid’的重复条目’ oqkqm5lbrj2iwtg6...原创 2019-11-01 11:19:42 · 488 阅读 · 0 评论 -
mysql显示插入成功,但查询不到该条数据的原因
问题:mysql显示插入成功,但查询不到该条数据 解决办法:查看表里是否存在与插入数据一样的主键 今天遇到一个问题,我在后台插入数据,没报错,但数据库却查不出数据。我将sql语句在数据库管理工具里运行,然后发现受影响行数是0。这就是完全没插入数据啊,再检查几遍,发现主键重复了。 ...原创 2019-10-17 17:34:11 · 16823 阅读 · 1 评论 -
连接数据库时allowMultiQueries=true的作用
MySQL连接数据库时,添加语句:“allowMultiQueries=true”的作用: 1.可以在sql语句后携带分号,实现多语句执行。 2.可以执行批处理,同时发出多个SQL语句。 ...原创 2019-05-08 18:31:34 · 49408 阅读 · 7 评论 -
连接数据库时zeroDateTimeBehavior的作用
在JDBC连接串中有一项属性:zeroDateTimeBehavior, 没添加“zeroDateTimeBehavior”,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的: java.sql.SQLException: Cannot convert value ‘0000-00-00 00:00:00’ from column 7 to TIMESTAMP...原创 2019-05-08 18:33:46 · 11851 阅读 · 0 评论 -
连接数据库时useSSL=false的作用
useSSL=false MySQL在高版本需要指明是否进行SSL连接 1.true 需要连接 2.false 不需要连接原创 2019-05-08 18:35:15 · 17033 阅读 · 3 评论 -
jdbc连接mysql5与mysql6的区别
上次jdbc连接数据库出现错误,原因是因为高版本的mysql用了低版本连接配置。在mysql6之后,就将连接配置进行了修改。如果要使用高版本(mysql6以后的版本),可修改连接配置。 mysql5的如下: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=u...原创 2019-05-15 18:30:22 · 906 阅读 · 0 评论 -
[Err] 1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for
今天运行sql时遇到一个错误: [Err] 1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=’ 错误原因是:两张表的字符集编码不一样 解决方法:修改其中一张表的字符集编码 sql语句如下: ALTER TABLE 表名 CONVERT...原创 2019-08-09 09:14:08 · 1907 阅读 · 0 评论 -
MySQL ERROR 1005: Can't create table (errno: 150)的解决办法
今天运行SQL时,出现了这个错误, MySQL ERROR 1005: Can’t create table (errno: 150) 原因:这个表创建语句里有设外键,而外键那张表并不存在 解决方法: 1.删除建外键的语句 2.将另一表建好,再运行SQL语句 ...原创 2019-08-17 16:34:10 · 2256 阅读 · 0 评论
分享