在本文中,我们将详细介绍复习MySQL:函数和存储过程的各个方面,并为您提供关于mysql中函数和存储过程的相关解答,同时,我们也将为您带来关于(MySQL)存储过程–循环结果、MSSQLMySQL数
在本文中,我们将详细介绍复习 MySQL:函数 和 存储过程的各个方面,并为您提供关于mysql中函数和存储过程的相关解答,同时,我们也将为您带来关于(MySQL)存储过程 – 循环结果、MSSQL MySQL 数据库分页(存储过程)、Mysql 使用小结:(1) 存储过程,循环,实现 Mssql Server 功能的 exec 的方法、mysql 启动报错Can''t connect to local MySQL server through socket ''/data/mysql/mysql/mysql.soc...的有用知识。
本文目录一览:- 复习 MySQL:函数 和 存储过程(mysql中函数和存储过程)
- (MySQL)存储过程 – 循环结果
- MSSQL MySQL 数据库分页(存储过程)
- Mysql 使用小结:(1) 存储过程,循环,实现 Mssql Server 功能的 exec 的方法
- mysql 启动报错Can''t connect to local MySQL server through socket ''/data/mysql/mysql/mysql.soc...
复习 MySQL:函数 和 存储过程(mysql中函数和存储过程)
最近看了一个系统 ,253 张 table,2 张 view,190 个存储过程,18 个函数:
SHOW DATABASES;
SHOW TABLES;
SHOW TABLE STATUS;
SHOW PROCEDURE STATUS where db != ''sys'';
SHOW FUNCTION STATUS where db != ''sys'';
DESC `banners`;
DESCRIBE `banners`;
SHOW CREATE TABLE `banners`;
SELECT * FROM `banners`;
DESCRIBE `view-hdtongji`;
SHOW CREATE VIEW `view-hdtongji`;
SHOW CREATE TABLE `view-hdtongji`;
SELECT * FROM `view-hdtongji`;
SHOW CREATE PROCEDURE `API_AH_ACTIVITY_DETAIL`;
SHOW CREATE FUNCTION `func_get_multi_user`;
SELECT * from information_schema.VIEWS;
SELECT * from information_schema.TABLES;
发现我常用的只有 table、view,很少使用 function 和 procedure。
- MySQL 函数:http://c.biancheng.net/view/2590.html
- MySQL 存储过程:http://c.biancheng.net/view/2591.html
MySQL 常用命令
- 使用SHOW语句找出在服务器上当前存在什么数据库:SHOW DATABASES。
- 创建一个数据库 MYSQLDATA:CREATE DATABASE MYSQLDATA。
- 选择你所创建的数据库:USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
- 查看现在的数据库中存在什么表:SHOW TABLES。
- 创建一个数据库表: CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1))。
- 显示表的结构: DESCRIBE MYTABLE。
- 往表中加入记录:mysql> insert into MYTABLE values (”hyq”,”M”)。
- 用文本方式将数据装入数据库表中(例如D:/mysql.txt):LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE。
- 导入sql文件命令(例如D:/mysql.sql):use database;source d:/mysql.sql。
- 删除表:drop TABLE MYTABLE。
- 清空表:delete from MYTABLE。
- 更新表中数据:update MYTABLE set sex=”f” where name=’hyq’。
(MySQL)存储过程 – 循环结果
我们正在从Postgresql迁移和应用到MySQL.
基本上,我想在MysqL中循环一个结果.
SELECT col1 FROM table1; < ---(1)从此查询中获取结果.
LOOP THROUGH col1Result
SELECT myCol FROM table2 WHERE thisCol = col1Result< ---等于上一个查询的每个结果.
END LOOP;
我也找到了这个参考
http://dev.mysql.com/doc/refman/5.0/en/cursors.html
但是,我坚持这条线.
FETCH cur1 INTO a,b;
这不是将cur1的每一个结果都变成变量a和b吗?
我如何确保我目前在变量a的第一个索引?
这是一个关于如何在我的结尾使用结果的例子(写在Postgresql中).
FOR my_record IN
SELECT disTINCT col1
FROM table1
WHERE col2 = param1;
LOOP
SELECT disTINCT col4
FROM table2
WHERE col3 = my_record.col1;
IF true THEN
RAISE EXCEPTION '%','ERROR MESSAGE' || my_record.col1;
END IF
SELECT disTINCT col5
FROM table3
WHERE col6 = my_record.col1;
IF true THEN
RAISE EXCEPTION '%',ERROR MESSAGE' || my_record.col1;
END IF;
END LOOP;
这将一直持续到循环中断或没有更多行可用(在这种情况下会出现无数据条件).
有关更多信息,请参见this希望能帮助到你.
MSSQL MySQL 数据库分页(存储过程)
先看看单条 sql 语句的分页 sql 吧。 方法1:
适用于 sql Server 2000/2005
<div><adata="91204"id="copybut91204" onclick="doCopy('code91204')"> 代码如下:
Mysql 使用小结:(1) 存储过程,循环,实现 Mssql Server 功能的 exec 的方法
Mysql 使用小结:(1) 存储过程,循环,实现 Mssql Server 功能的 exec 的方法
最近开始总结自己学习的 Mysql 的经验,在这里跟大家分享。很希望大家很拍板砖,谢谢。
先说说,为什么我要学习 Mysql 的存储过程,因为 Mysql 在单纯的 Script(脚本)里面,不支持循环。大家可以参考相关的文档。
先给出代码:
DELIMITER $$
DROP PROCEDURE IF EXISTS `dowhile` $$
CREATE PROCEDURE `dowhile`()
DETERMINISTIC
BEGIN
DECLARE v1 INT DEFAULT 1000;
declare tablename varchar(10) default ''testTable'';
declare createString varchar(1000);
while v1 <> 0 DO
set @nextTable = concat(tablename,v1);
set createString = concat("create table `",@nextTable);
set createString = concat(createString,"` ( `id` int null, `name` varchar(200) null); ");
set @mytable = createString;
select @mytable;
PREPARE stmt_name FROM @mytable;
EXECUTE stmt_name ;
DEALLOCATE PREPARE stmt_name;
set v1 = v1 -1;
END while;
END$$
DELIMITER ;
第一步:建立一个 Mysql 存储过程,必须要注意的地方是:一定要使用 DELIMITER (定界符这个) 关键字,否则会产生 ErrorNum:1064。这点无论是使用命令行还是 Mysql Tools (Workbench) 都必须遵守。
具体参考:http://dev.mysql.com/doc/refman/5.1/en/stored-programs-defining.html ,又一次证明了,仔细阅读文档很重要。
更多参考:http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html
第二步:使用循环,必须在 Mysql 存储过程中,希望 Mysql 新版本可以进行改进。
原文
be used in the body of stored programs: Stored procedures and functions, triggers, and events. These objects are defined in terms of SQL code that is stored on the server for later invocation
具体参考:http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-compound-statements.html
第三步:使用 PREPARE 命令,打开一个 Stmt,不要忘记关上。
具体参考:http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html
小结:
我这里使用循环,但是实际完成建表过程,只实现了 300 次。是不是在存储过程中,循环有限制?
探索 1:循环限制,设置 while 循环最大循环数为 100000,没有任何问题。时间:0.406 秒 。(双核 2.47)
探索 2: 循环数为 10000000,没有任何问题。时间:27.753 秒。
探索 3: 循环数为 20000000,没有任何问题。时间:48.578 秒。
超过 30 秒的限制。
当超过 10 分钟之后,连接断开。主要分析,发现 Workbench 有一个自己的数据库连接时间,10 分钟。
通过阅读发现了 Mysql 的超时设置是 interactive_timeout = wait_timeout:28800s (480min) 6 小时。
mysql 启动报错Can''t connect to local MySQL server through socket ''/data/mysql/mysql/mysql.soc...
1:首先mysql本地连接报错:
Can''t connect to local MySQL server through socket ''/data/mysql/mysql/mysql.sock''(111)
解决:
1:删除 文件:/data/mysql/mysql/mysql.sock
此时又会报错:Can''t connect to local MySQL server through socket ''/var/lib/mysql/mysql.sock'' (2)
进入到目录:/data/mysql2/bin/
使用命令:mysqld start
此时报错:[ERROR] Too many arguments (first extra is ''start'')
于是将命令修改:mysqld --user=mysql
感谢:
https://www.cnblogs.com/invban/p/5824796.html
https://blog.csdn.net/u010416101/article/details/80490536
2:19年7月4日,mysql不是自己安装的,也不晓得是怎么安装的.在启动时依然报这个错误,按照前面的方法还是解决不了.
然后我又使用如下命令,启动依然报错
./mysqld --defaults-file=/data/mysql/mysql01/my.cnf --basedir=/data/mysql/mysql01 --datadir=/data/mysql/mysql01/data --user=zabbix
今天关于复习 MySQL:函数 和 存储过程和mysql中函数和存储过程的介绍到此结束,谢谢您的阅读,有关(MySQL)存储过程 – 循环结果、MSSQL MySQL 数据库分页(存储过程)、Mysql 使用小结:(1) 存储过程,循环,实现 Mssql Server 功能的 exec 的方法、mysql 启动报错Can''t connect to local MySQL server through socket ''/data/mysql/mysql/mysql.soc...等更多相关知识的信息可以在本站进行查询。
本文标签: