mysql
搬砖男子汉
热爱编程,乐于分享
展开
-
mysql 中的 unique key
转载自:http://zccst.iteye.com/blog/1697043使用UNIQUE KEYCREATE TABLE `secure_vulnerability_warning` ( `id` int(10) NOT NULL auto_increment, `date` date NOT NULL, `type` varchar(100)转载 2015-01-30 21:18:45 · 5833 阅读 · 0 评论 -
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its
在自定义MySQL函数的时候报了如下错误[2017-07-01 08:58:30] [HY000][1418] This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use t原创 2017-07-01 09:14:58 · 904 阅读 · 0 评论 -
mysql使用binlog恢复使用delete误删的数据
在我们平时使用MySQL数据库的时候,可能会出现delete from table_name 忘记写条件语句而导致删除了整个表的数据。这个时候就很棘手了。如果公司的数据库都有开启数据备份那自然是没有问题。source 一下备份下来的sql文件就好。但是如果没有备份数据呢?办法还是有的。答案就是bin log。MySQL带了一个 bin log 的功能,但是默认是原创 2017-06-11 17:20:21 · 22152 阅读 · 0 评论 -
MySQL 表分区 A PRIMARY KEY must include all columns in the table's partitioning function
当我们在对MySQL的数据表进行分区的时候,很容易碰到如下错误A PRIMARY KEY must include all columns in the table’s partitioning function 意思是说分区的字段必须是要包含在主键当中。 所以当我们在使用 日期进行分区的时候,就需要将日期字段包含到主键当中去,ALTER TABLE `order` PARTITION BY R原创 2017-07-14 14:35:19 · 15982 阅读 · 0 评论 -
mysql for update 使用说明
笔者在阅读技术书籍的时候无意间发现 一条select语句后面跟了for update,一时间就来了兴趣。 几番搜索之后,明白这是一个上锁用的。 上的是一个排它锁,也就是说,其他的事务是可以读取的。但是不能写入或者更新。 我们举一个项目中常见的应用场景吧。 比如有一张表 他有三个字段。id代表商品id ,name代表商品名字,count代表该商品数量。 我们为了显示抢购的时候显示该商品还剩余原创 2017-07-16 10:14:58 · 16969 阅读 · 6 评论 -
mysql innodb_flush_log_at_trx_commit
参数 innodb_flush_log_at_trx_commit用来控制重做日志刷新到磁盘的策略。该参数的默认值是1,表示事务提交时必须调用一次fsync操作。还可以设置该参数的值为0和2。0表示事务提交时不进行写入重做日志操作,这个操作仅仅在master thread中完成,而在mastert hread 中每1秒会进行一次重做日志文件的fsynccaozuo 。2表示事务提交时将重做日原创 2017-07-22 09:44:07 · 1004 阅读 · 0 评论 -
mysql Waiting for table metadata lock
当我们在进行表的更新操作或者是想要drop table的操作的时候,有时候,会卡死,这样的原因在于事务还未提交或者未回滚。但是此时有其他的用户在执行表的ddl语句。(更新表的字段或者删除掉表)然后,由于表的ddl语句会占用metadata的独占锁。会导致之后的所有sql都无法执行。这个时候,我们可以输入命令 show processlist 查看到所有跟MySQL操作相关的进程转载 2017-08-18 20:47:58 · 379 阅读 · 0 评论 -
如何在开启了log-bin的MySQL Server中创建FUNCTION
在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to u转载 2017-09-07 11:30:27 · 436 阅读 · 0 评论 -
mysql将执行过的sql放到历史记录里面
查看是不是开启将历史执行的sql存入文件show variables like 'general_log%'输出结果如下 -> ;+------------------+---------------------------------------------------------------------------+| Variable_name | Val原创 2017-10-18 09:21:11 · 802 阅读 · 0 评论 -
mysql TRUNCATE delete
mysql truncate 和delete 都用与删除数据表里的数据truncate命令则是直接将全表的数据清空掉。 delete命令可以不带where 可以达到同样的目的 。delete通过where带上条件删除部分数据,从这可以看出delete灵活些。下面笔者说说这两个命令的区别。1) 使用truncate命令清除了表中的所有数据后,如果该表的主键是主键自增的原创 2017-12-09 15:34:44 · 321 阅读 · 0 评论 -
mysql5.7 sql_mode=only_full_group_by研读
在安装了MySQL5.7后,笔者发现,以前系统的一些sql语句报错了,报的错如下:bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause a原创 2017-11-28 14:16:46 · 1818 阅读 · 0 评论 -
MySQL列转行统计数据
笔者在开发的过程中遇到了这样的问题。 其中item_id是固定的字典。值是死的。 其中item_id 等于 1,2,3的值是每一个work_quoted_id都需要相乘的。 相当于一份订单人工费和施工人数以及施工天数都是一定存在的并且是相乘的关系。 其他的item_id的值是需要相加的。 所以,运算的规则是 item1、item2、item3的quantity值是要相乘的。在加上it转载 2017-06-30 14:37:47 · 2288 阅读 · 1 评论 -
mysql using filesort
今天在explain一个MySQL的sql语句的时候,产生了,如下的结果extra那一栏多了一个Using filesort 而却type也是ALL这说明了查询的结果是全表扫描。可是笔者明明就在 public_time字段加了索引。然而笔者加了 limit 0 , 12 就行了,也不知为什么。但是using filesort的产生原因是明确的。多数是因为 o原创 2017-04-26 16:10:28 · 1130 阅读 · 0 评论 -
mysql 模糊查询知识点
转载自: http://www.2cto.com/database/201106/94664.htmlMySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显转载 2015-02-09 21:28:38 · 351 阅读 · 0 评论 -
mysql in 的两种用法
简述MySQL 的in 的两种用法:他们分别是在 in 关键字后跟一张表(记录集),以及在in后面加上字符串集。先讲后面跟着一张表的。首先阐述三张表的结构:s(sno,sname.sex,age,dept) //学生信息表c(cno,cname,tname) //课程信息表sc(sno,cno,grade) //课程选原创 2015-03-31 12:31:48 · 885 阅读 · 0 评论 -
mysql 可以根据查询结果插入到指定的表中
MySQL可以根据查询到的记录集插入到指定的表中其例子为:首先阐述三张表的结构:s(sno,sname.sex,age,dept) //学生信息表c(cno,cname,tname) //课程信息表sc(sno,cno,grade) //课程选修信息表那么现在就是问题是:将一门课的成绩大于等于80分原创 2015-03-31 18:41:40 · 3474 阅读 · 0 评论 -
mysql根据查询结果创建表
现在假设存在三张表 s(sno,sname.sex,age,dept) //sno代表学生的学号 , sname代表学生姓名 , sex代表性别 ,age代表年龄,dept代表系c(cno,cname,tname) //cno课程号 ,cname课程名 , tname老师名字sc(sno,原创 2015-03-31 18:16:25 · 4438 阅读 · 0 评论 -
64位win7安装mysqlzip包的形式
1)首先下载zip包解压。2) 配置环境变量 配置到 bin目录下。比如说自己的目录就是:F:\mysql\mysql-5.6.21-winx64\mysql-5.6.21-winx64\bin3)在与my-default.ini同目录下的目录创建一个my.ini里面的配置如下:[mysql]# 设置mysql客户端默认字符集default-char原创 2015-09-01 18:13:57 · 561 阅读 · 0 评论 -
mysql数据库中的information_schema数据库详解
mysql中的information_schema表中各个表的说明原创 2017-03-10 10:35:16 · 5881 阅读 · 1 评论 -
mysql 从dump出来的sql文件导回去数据库里面
当我们将数据库表里的数据导出为一个sql文件时,我们可以将数据导回去。使用如下命令mysql>source d:/dbname.sql原创 2017-03-13 15:38:03 · 2913 阅读 · 0 评论 -
mysql datetime分组统计下载量
假设我们的mysql数据库中有一个这样的一个表,他的字段是这样的。 userid(varchar64) article_id (varchar64) create_date(datetime)用户的id、文章的id、和下载的时间。 那么现在有一个这样的需求。 我们求出每个月的指定的文章被下载的次数。 那么我们就可以这么写sqlSELECT date_format(create_date,原创 2017-03-24 19:07:21 · 945 阅读 · 0 评论 -
mysql [42000][1071] Specified key was too long; max key length is 767 bytes
今天在MySQL中建立表的时候,报了一个错误,说是key太长了,超戳了767个字节但是建表语句并有超过指定的长度啊。CREATE TABLE XXL_JOB_QRTZ_JOB_DETAILS ( SCHED_NAME VARCHAR(120) NOT NULL, JOB_NAME VARCHAR(200) NOT NULL, JOB_GROUP VARCHAR原创 2017-04-18 19:25:03 · 605 阅读 · 0 评论 -
mysql hash分区要点
mysql 有很多种表分区的方式,这里写一些笔者对于hash分区的感悟。如有错误,恳请读者斧正。mysql hash分区不用像其他的分区指定,当某一列值得情况为某某某的情况去到某一分区。比如list分区和range分区。hash直接只用指定分几个区,然后根据算的结果将一行数据去到某一个分区即可。但是具体是怎么算的,其实hash分区其实就是取模运算 , 比如 5%4原创 2018-01-01 16:02:13 · 2526 阅读 · 0 评论