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

MySQL 触发器 存储过程 一点小用

      同事离职,又一个一个烂摊子要收拾。这里修修,那里补补都没有精力来写点东西。
      明天回家,上午整理好文档。下午决定抽点时间,把最近的东西尽量理一理。很多灵感都已经遗忘。我们总在不断面对,所以我们不断遗忘。【syslog、mysql优化、触发器、存储过程、文件读写……】疯狂的Google着这些关键词,以求在对项目整体改动最小、影响最小情况下完成这些工作。
      过程很痛苦,今天这篇算是痛定思痛吧!
      在技术可行的情况下,优雅的设计永远很重要,否则就不断痛苦吧。(思考,成熟的思考一定在行动之前)
      言归正传:触发器、存储过程可以理解一些预先编写好的函数,存储在数据库服务器上。触发器关联到具体表,对一张数据表进行插入、更新、删除这三类操作前、操作后都可以做一些事情,比如:删除某张表一条记录后,可以同时删除一张相关表中的对应记录。而这些工作都会由数据库自动完成。
      一个例子:
 DELIMITER ;;
TRIGGER `targetTest` AFTER INSERT ON `tbl_1` FOR EACH ROW BEGIN
if not exists (select id from tbl_2 where name=NEW.name) then
INSERT INTO tbl_2 (`name`,`record`) VALUES (NEW.name,'1');
else
UPDATE tbl_2 SET record=record+1 WHERE name=NEW.name;
end if;
END */;;
DELIMITER ;
 说明:上面例子实现功能,向表tbl_1中插入一条数据之后,判断tbl_2中有没有此记录,如果没有插入一条新的记录到tbl_2,如果有对应name则更新一下tbl_2的record字段。(触发器语法解释可以Google其他资料)
       存储过程,一段编写好的SQL语句可以封装成函数,直接调用:
       一个例子:
DELIMITER $$
CREATE DEFINER=`xxx`@`localhost` PROCEDURE `pro_test`(e_table varchar(1000),e_filename varchar(1000),e_condition varchar(1000))
begin
SET @sql = CONCAT('select * into outfile "',e_filename, '" from ',e_table);
IF e_condition IS NOT NULL AND e_condition <> '' THEN
SET @sql = CONCAT(@sql,' where ',e_condition);
END IF;
PREPARE record from @sql;
EXECUTE record;
DEALLOCATE PR


相关文档:

mysql类型转换

MYSQL Cast函数 类型转换
BINARY
BINARY操作符将后面的字符串抛给一个二进制字符串。这是一种简单的方式来促使逐字节而不是逐字符的进行列比较。这使得比较区分大小写,即使该列不被定义为 BINARY或 BLOB。BINARY也会产生结尾空白,从而更加显眼。
mysql> SELECT 'a' = 'A';
-> 1
mysql> SELECT BINARY ' ......

CentOS LAMP环境搭建和测试php与mysql的连接


    * 摘要:CentOS LAMP作为服务器,不安装不需要的组件,所以在选择组件的时候,不要选web服务器,因为我们后面要手动编译安装。CentOS LAMP系统约定RPM包和源码包存放位置
    * 标签:CentOS LAMP
    *
      Oracle帮您准确洞察各个物流 ......

MySQL Java 开发套装

MySQL Java 开发套装(服务器,管理工具,JDBC驱动,示例代码)
小更新: 为了减轻负担, 用 MySQL-Front 2.5 来管理, 这个软件无中文问题. 如果以后开源版本HeidiSQL的解决了中文问题, 就用开源的.
下载: http://tomcatmonitor.googlecode.com/files/portable_mysql5.exe  4.02MB (自解压包)
参考文档: MySQL 5 绿色 ......

让powerdesigner生成的sql在mysql下正确运行

如果按照powerdesigner的默认选项,生成的sql不能在mysql中正确运行.]
经过本人研究发现要做如下修改:
  1.aftercreate选项改为
.foreach_item(OutReferences)
   .ifnot (%hasFKIndex%)
/*==============================================================*/
/* Index: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号