新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
把exec去了。直接调用 CREATE OR REPLACE TRIGGER TRU_WORKSAL AFTER UPDATE OR DELETE ON WORKSAL FOR EACH ROW DECLARE CALC DATE; BEGIN pad_amt(:new.salmonth,:new.staff); pad_sal(:new.salmonth,:new.staff); END; /
在东区等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都做网站 网站设计制作按需网站建设,公司网站建设,企业网站建设,品牌网站制作,全网营销推广,外贸营销网站建设,东区网站建设费用合理。
mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。
mysql中存储过程的例子:
CREATE PROCEDURE addvoucher (
IN userid INT,
IN voucherid INT,
OUT result INT
)
BEGIN
SELECT
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
FROM
t_voucher
WHERE
id = voucherid;
SET autocommit = 0;
IF EXISTS (
SELECT
*
FROM
t_user_voucher tuv,
t_voucher tv
WHERE
tv.id = tuv.voucherid
AND tv.batch =@batch_a
) THEN
SET result = 1;-- 已存在
SELECT
result;
ELSE
IF @c_count_a 0 THEN
IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) 0 THEN
IF @isdead_a = 1 THEN
INSERT INTO t_user_voucher (userid, voucherid, isdead)
VALUES
(userid, voucherid, 1);
UPDATE t_voucher SET c_count = c_count-1 where id = voucherid;
SET result = 0;-- 成功
END;
如果在一个循环中插入,可用SELECT
ROW_COUNT()
, 这个只能得当前session到插入的总数量
如果你需要得到最后插入的ID, 可用SELECT
LAST_INSERT_ID()
如果想得到批量插入的后的ID列表, 最好使用存储函数,保持SQL原子性,先用SELECT
LAST_INSERT_ID()得到最后一个ID, 然后通过SELECT
ROW_COUNT()得到插入了多少个,通过ID自增长的范围即可得到插入列表后返回的ID列表
$result=$db-query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 while( $row = $result-fetch_array(MYSQLI_ASSOC)) //完成从返回结果集中取出一行{ while ($key=key($row)){ //依次取得字段名 $value=current($row); //依次取得字段值}}
执行更新调用的方法是executeUpdate();
这个方法的返回值就是int型,就是改变了的条数
1:比较实在的做法:mysql -u -p -e "slect * from ..." 或者 echo “select ....” | mysql -p ..
某天的行数做条记录,其他的就是加减乘除了...
2:开binlog