在做快捷查询时,触发器如下啊。
向cargo2中的更新数据,令cargo1中的valid字段1
create trigger test1
before insert on cargo2
for each row
begin
update cargo1 set valid = '1' where number = new.number;
end//
create procedure Pcargo3 (in num varchar(20))
begin
select * from cargo3 where id = (select id from cargo3 where number = num
by id desc limit 1);
end;//
K, 0 rows affected (0.00 sec)
有动态处理sql语句的存储过程
create procedure pTest8(in id int,in lie varchar(20))
begin
set @sql=concat('select ',lie,' from caseinfo where id = ',id);
prepare stml from @sql;
execute stml;
end//
showprocedure
status --显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等showcreate procedure
sp_name --显示某一个存储过程的详细信息
create procedure pAttfile(in num varchar(20),in col varchar(20))
begin
set @sql=concat("select ",col," from attfile where id = (select id from attfile where ",col," !='' and number = '",num,"' order by id desc limit 1)");
prepare s from @sql;
execute s;
end//
原变量名为column试了很久未成功,改成col成功了。
function attShow($n,$c){
global $host,$user,$password,$database;
$m=new mysqli($host,$user,$password,$database);
$q=$m->query("call pAttfile('".$n."','".$c."')");
if($q != NULL){
$r=$q->fetch_array(MYSQLI_ASSOC);
if(!$r){
return "";
}else{
switch ($r[$c]) {
case 'Yes':return '<font color="red">YES</font>';break;
case 'No':return '<font color="red">NO</font>';break;
default:
return '<a href="upload/'.$r[$c].'" target="_blank">DownLoad</a>';break;
}
}
}else{
return "isNull";
}
}
上述存储函数,为何要这般定义,不解吧,一个下午的时间均在解决此上了。原因不明啊。
不能直接global啊。不行
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
以下是在做仓储管理系统三次升级时用到的。
<?php
$success=1;
//disable the autocommit feature
$m->autocommit(FALSE);//设置不自动提交
$sql="update basket set ORDERID =ORDERID - '9' where id='4'";
$result1=$m->query($sql);
if(!$result1){
$success=0;echo 'failed1';
}
//section 2
$sql2="update orders set TOPAY = TOPAY - '2' whesre id = '1'";
$result2=$m->query($sql2);
if(!$result2){
$success=0;echo 'failed2';
}
echo $success?"true":"false";
echo "<br>";
if($success){
$m->commit();
echo "the swap took place!Congratulatios!";
}else{
$m->rollback();
echo "there was a problem with your swap.";
}
$m->autocommit(TRUE);
?>
有以下注意点:
浪费了我很长时间啊MYSQL只有 INNODB和BDB类型的数据表才支持事务处理,其他的类型是不支持的!
<?php
include_once("conn.php");
$id=$_GET[id];
$conn->autocommit(false);
if(!$conn->query("delete from tb_sco where id='".$id."'"))
{
$conn->rollback();
}
if(!$conn->query("delete from tb_stu where id='".$id."'"))
{
$conn->rollback();
}
$conn->commit();
$conn->autocommit(true);
echo "ok"
?>
分享到:
相关推荐
触发器在数据库里以独立的对象存储,它与存储过程不同的是,存储过程通过其它程序来启动运行或直接启动运行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动地隐式运行。并且,触发器不能接收...
第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 ...
第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 ...
--创建存储过程P_Sale1,统计每种产品的销售数量和销售金额 CREATE PROCEDURE P_Sale1 AS SELECT Product.ProNO,ProName ,Price ,SUM(Quantity),SM=SUM(Price*Quantity) FROM Proout,Product WHERE Product.ProNO=...
第一篇概论 第一章微软.NET战略和ASP.NET 简介 i. 微软.NET 的历史 ii. ASP.NET历史 iii. 众说纷纭.NET iv. ASP.NET综述 v. 小结 第二章我的第一个ASP.NET程序 i. 配置开发环境 ii. 运行配套光盘 iii. 第一个例子 iv...
第一篇 概论 第一章 微软.NET战略和ASP.NET简介 i. 微软.NET的历史 ii. ASP.NET历史 iii. 众说纷纭.NET iv. ASP.NET综述 v. 小结 第二章 我的第一个ASP.NET程序 i. 配置开发环境 ii. 运行配套光盘 ...
第一篇 概论 第一章 微软.NET战略和ASP.NET简介i. 微软.NET的历史 ii. ASP.NET历史iii. 众说纷纭.NET iv. ASP.NET综述 v. 小结第二章 我的第一个ASP.NET程序 i. 配置开发环境ii. 运行配套光盘iii. 第一个例子iv. ...
第一章 SQL SERVER2000数据库管理系统 第二章 创建和维护数据库 第三章 设计表 第四章 表的管理 第五章 维护表的数据 第六章 结构化查询语言 SQL 第七章 视图 第八章 Transact-SQL 高级查询 第九章 SQL SERVER 编程...
第一章 数据库基础 第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系结构(DBA) 第...
第一章 数据库基础 第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系...
第一章 数据库基础 第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 ...
第一章 数据库基础 6 第二章 Oracle入门 6 第三章 查询基础 11 第四章 单行函数 14 第五章 分组函数 19 第六章 多表查询 21 ... 第十九章 游标、函数 79 第二十章 存储过程 86 第二十一章 触发器 90 第二十...
第一章 数据库基础 第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 Oracle 体系结构(DBA...
第一章 数据库基础 第二章 Oracle 入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle 数据类型 第十一章 Oracle 体系结构(DBA) ...
第一章 数据库基础 第二章 Oracle入门 第三章 查询基础 第四章 单行函数 第五章 分组函数 第六章 多表查询 第七章 子查询 第八章 高级查询 第九章 数据字典 第十章 Oracle数据类型 第十一章 Oracle体系...
以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...
第二层实现了 MySQL 核心服务功能,包括查询解析、分析、优化、缓存以及日期和时间等所有内置函数,所有跨存储引擎的功能都在这一层实现,例如存储过程、触发器、视图等。 第三层是存储引擎层,存储引擎负责 MySQL ...
第4~第13章讲述数据库管理系统SQL Server 2008的应用,其内容包括SQL Server 2008数据库基础、数据库的概念和操作、表的基本操作、数据库查询、TSQL编程、视图和索引、存储过程和触发器、事务与并发控制、数据库...
第一部分:SQL概述,讲述了Sql的发展以及Sql的入门,第二部分:检索数据,讲述了Sql的基础知识,第三部分:更新数据,讲述了Sql数据的增删改查以及事务,第四部分:数据库结构,讲述了如何创建数据库,视图以及SQL的安全,第五...