我用的是wamp的集成PHP+mysql,在用下面代码创建储存过程时,显示有问题,但是确认无误再输入时,它就说CJ_Date已经存在,那我创建的是否成功?还有下面的代码有没有问题?我照书上打的DELIMITER $$
CREATE PROCEDURE CJ_Data(in_xh CHAR(6),in_kch CHAR(3),in_cj INT(4))
BEGIN
DECLARE in_count INT(4);
DECLARE in_xf TINYINT(1);
DECLARE in_cjb_cj INT(4);
SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;
SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
IF in_count>0 THEN
BEGIN
DELETE FROM CJB WHERE XH=in_xh and KCH=in_kch;
IF in_cjb_cj>60 THEN
UPDATE XSB set ZXF=ZXF-in_xf WHERE XH=in_xh;
END IF;
END;
END IF;
IF in_cj!=-1 THEN
BEGIN
INSERT INTO CJB VALUES(in_xh,in_kch,in_cj);
IF in_cj>60 THEN
UPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;
END IF;
END;
END IF;
END$$
DELIMITER;
CREATE PROCEDURE CJ_Data(in_xh CHAR(6),in_kch CHAR(3),in_cj INT(4))
BEGIN
DECLARE in_count INT(4);
DECLARE in_xf TINYINT(1);
DECLARE in_cjb_cj INT(4);
SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;
SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
IF in_count>0 THEN
BEGIN
DELETE FROM CJB WHERE XH=in_xh and KCH=in_kch;
IF in_cjb_cj>60 THEN
UPDATE XSB set ZXF=ZXF-in_xf WHERE XH=in_xh;
END IF;
END;
END IF;
IF in_cj!=-1 THEN
BEGIN
INSERT INTO CJB VALUES(in_xh,in_kch,in_cj);
IF in_cj>60 THEN
UPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;
END IF;
END;
END IF;
END$$
DELIMITER;
解决方案 »
- 如何在postgresql 函数中创建临时表???
- 不太懂mysql的查询,如果查“where name like 'a'”会把全中文姓名也查出来
- 关于mysql innodb 数据的恢复问题
- 论坛显示置顶贴的SQL
- 数据2K,索引8K正常吗?
- 请教:MYSQL数据查询问题~
- ubuntu系统,启动mysql的时候,出现start: Job failed to start,日志如下,这是什么问题?日志看不太明白
- 关于多表增量更新的一个问题
- MySQL数据库删除
- 请问如何更优雅的设计数据库同步问题?这个示例是说明使用触发器进行同步
- 我有个数据库下有300多张表,其中有280张表
- mysql出错,是不支持UTF-8吗?
mysql> DELIMITER $$
mysql> CREATE PROCEDURE CJ_Data(in_xh CHAR(6),in_kch CHAR(3),in_cj INT(4))
-> BEGIN
-> DECLARE in_count INT(4);
-> DECLARE in_xf TINYINT(1);
-> DECLARE in_cjb_cj INT(4);
-> SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
-> SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;
-> SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
-> IF in_count>0 THEN
-> BEGIN
-> DELETE FROM CJB WHERE XH=in_xh and KCH=in_kch;
-> IF in_cjb_cj>60 THEN
-> UPDATE XSB set ZXF=ZXF-in_xf WHERE XH=in_xh;
-> END IF;
-> END;
-> END IF;
-> IF in_cj!=-1 THEN
-> BEGIN
-> INSERT INTO CJB VALUES(in_xh,in_kch,in_cj);
-> IF in_cj>60 THEN
-> UPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;
-> END IF;
-> END;
-> END IF;
-> END$$
Query OK, 0 rows affected (0.00 sec)mysql> DELIMITER;
DROP procedure IF exists CJ_Data;
drop procedure if exists CJ_Data;