易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

Excel数据使用jdbc直接插入Mysql数据库

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import jxl.*;
public class ImportExcel {
public static void main(String[] args) {
File importExcel = new File("D:\\test\\test.xls");
try {
// 数据库连接
Class.forNa ......

Mysql5.1 for PHP

准备:下载Mysql5.1<mysql-essential-5.1.41-win32.msi>
安装:step by step
测试:1.MySQL测试
点开MySQL Command Line Client, 输入安装时建立的密码。
mysql>show databases;
mysql>use <<database name>>;
mysql>show tables;
mysql>select * from <<table name>>;
......

mysql 在命令行上使用参数

 在命令行上使用选项
在命令行中指定的程序选项遵从下述规则:
·         在命令名后面紧跟选项。
·         选项参量以一个和两个破折号开始,取决于它具有短名还是长名。许多选项有两种形式。例如,-?和--help是 ......

cobar and mysql分库字段问题

    今天调程序从数据库里取数据,一直去不出来,把日志里打出来的sql放到数据库里去执行,却又能
取出数据来,很是郁闷。
    数据库是mysql的,一共128个库,通过某个字段分库。
    后来发现要查的这条数据的分库字段被改过,按照程序里执行的去查,他就去了另外一个库 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号