今天有一个需求是迁移tag的数据,之前写的存储过程到现在都忘记了,从新再写一个,并在这里纪录一下,防止自己下次还忘记 首先是修改一下Mysql的配置 大家可以看下 这是我们老大的测试结果 SET GLOBAL max_allowed_packet=1024*1024*1024;SET GLOBAL key_buf
今天有一个需求是迁移tag的数据,之前写的存储过程到现在都忘记了,从新再写一个,并在这里纪录一下,防止自己下次还忘记
首先是修改一下Mysql的配置
大家可以看下
这是我们老大的测试结果
<code>SET GLOBAL max_allowed_packet=1024*1024*1024; SET GLOBAL key_buffer_size=1024*1024*1024; SET GLOBAL tmp_table_size = 512*1024*1024; SET SESSION myisam_sort_buffer_size = 512*1024*1024; SET SESSION read_buffer_size = 128*1024*1024; SET GLOBAL myisam_max_sort_file_size = 100*1024*1024*1024;</code>
下面选择数据库
<code>use db_database;</code>
如果有存储过程,先删除存储过程,(官方的中文翻译叫存储程序,感觉诡异)
<code>drop procedure 存储过程名称;</code>
好了,下面重头戏,把delimiter 改成 // 为开始和结束,并创建存储过程
<code>delimiter // CREATE PROCEDURE 存储过程的名称(); BEGIN</code>
好了下面我们来定义变量,这个大家都能看懂吧!
<code>DECLARE rid INT; DECLARE rtags VARCHAR(225); DECLARE lasttime datetime; DECLARE firsttime datetime; DECLARE done, duplicate, expcount INT DEFAULT 0;</code>
下面这个比较特殊,是定义游标(或者叫指针,但是官网上面叫光标),这个需求要获取id,来操作后面得数据
<code>DECLARE cur CURSOR FOR SELECT id FROM 表名 ORDER BY id ASC;</code>
然后设置各种状态下的设置的变量的值
Mysql各种状态都在这里了
当sql错误状态是02000的时候 done这个变量为1
<code>DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;</code>
同上
<code>DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET duplicate = 1;</code>
设置变量
<code>SET lasttime = now(); SET firsttime = now();</code>
下面我们来遍历游标
打开游标
<code>OPEN cur;</code>
遍历
<code>REPEAT FETCH cur INTO rid; if not done then SET duplicate = 0; UPDATE 另一张表 SET keywords = 数据是啥 WHERE id = rid;</code>
好了,上面就是写你的sql,下面是100条的时候,打印出来执行时间和条数
<code>SET expcount = expcount + 1; IF expcount % 100 = 0 then SELECT expcount,now() - lasttime; SET lasttime = now(); END IF;</code>
直到没有数据,遍历结束
<code>end if; UNTIL done END REPEAT;</code>
关闭游标
<code>CLOSE cur;</code>
最后结束存储过程
<code>END; // delimiter ;</code>
以上就是做的存储过程的数据迁移的部分,这个写的比较简单,不过以后有复杂的可以直接修改修改就可以用了!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor
