易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL 5.0存储过程

首先看MySQL 5.0参考手册中关于创建存储过程的语法说明:
 
CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body
   
proc_parameter:
    [ IN | OUT | INOUT ] param_name type
type:
    Any valid MySQL data type
characteristic:
    LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
  | COMMENT 'string'
routine_body:
    Valid SQL procedure statement
 
如果你对MySQL还不太熟悉的话,单单看这个语法结构当然不足以进行MySQL存储过程编程。我之前基本都是使用MS SQL SERVER,所以以下记录我熟悉MySQL存储过程的过程,也是重点介绍MS SQL SERVER与MySQL区别较大的地方。
 
第一步,当然是写个Hello Word的存储过程,如下:
CREATE PROCEDURE phelloword()
BEGIN
  SELECT 'Hello Word!' AS F;
END;
 
将上面创建phelloword存储过程的语句拷到phpMyAdmin中执行,报如下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
 
在这个问题上我纠缠了很久,在MySQL的命令行工具中执行同样不成功,但是根据提示信息可以知道执行在 SELECT 'Hello Word!' AS F;处结束,后面的END;没有执行,这显然会导致错误。
这里需要选择以个分隔符,语法如下:DELIMITER //
分隔符是通知MySQL客户端已经输入完成的符号。一直都是用“;”,但是在存储过程中不行,因为存储过程中很多语句都需要用到分号。
因此上面的存储过程改为:
CREATE PROCEDURE ptest()
BEGIN
  SELECT 'Hello Word!' AS F;
END //
 
另外在phpMyAdmin中执行时,在Delimiter文本框中填写 //,这次存储过程即可创建成功。
 
第二步,写一个包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的完整的一个存储过程,如下:
CREATE PROCEDURE plogin
(
    p_username char(15),
 


相关文档:

MySQL连接时快时慢的问题解决

 my.ini里的那个tmp_table_size的值.原来tmp_table_size=16M.我改为32M
然后重启MYSQL还是没解决问题.
只好重启服务器试试了,结果重启后CPU正常了.不过还是没找出是什么原因导致MYSQL占用那么多CPU资源.
=====================================
修改hosts文件,加入一行   
172.16.59.12   & ......

Linux中查看和设置MySQL数据库字符集(转)

6
、修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
 
6
、创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
通过配置文件设置创建数据库时字符集:
#vi /var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-col ......

Java 读取 MySQL 中文 乱码

Java 读取 MySQL 中文 乱码
场景:Java,eclipse,读取MySQL数据库,MySQL编码为utf-8
问题:读出来的中文在eclipse的输出窗口中显示为乱码
错误的写法
1
   System.out.print(new String( rs.getString("bib_author").getBytes("utf-8"),"GBK" )); 

   System.out.print( ......

mysql 中show 命令用法详细介绍

 以下所有命令都是在进入mysql监控器中执行的:
  a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称
  b. show databases; // 显示mysql中所有数据库的名称
  c. show columns from table_name from database_name; 或show columns from databa ......

MySQL杂

MySQL的timestamp类型自动更新问题
 今天建了一个表,里面有一个列是timestamp类型,我本意是在数据更新时,这个字段的时间能自动更新。岂知对这个类型的值还不甚了解,导致出错。发现这个字段只是在这行数据建立的时候有值,在更新的却无变化。
    查找资料,发现是我建表的语句有问题:
以下是代 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号