解决方案 »
- mysql绿色版Access denied for user 'ODBC'@'localhost' (using password:NO)
- 如何在sql server 2005中打开mysql的脚本文件?
- mysql 数据库目录的问题
- mysql PROCEDURE 里面使用查询怎么会返回全表呢,某些项又不对.........
- Mysql中只有IF null(a,b)函数么?如何判断两个字段同时为NULL
- 请问如何查询一个结果集中在最大数?
- jsp+mysql的程序,能用phpmyadmin管理数据库么
- PostgreSQL用户密码问题--200分相赠
- 如何将mysql数据库转换到sql server 2000中。
- php mysql update 优化
- 导出的过程里有DEFINER=`JYC_IT2388`@`192.168.1.%`,在导入另一个库的时候,是否需要保留这个definer?
- 请教 一个表里有3个不同的用户id 如何通过联用户表的方式 取出这三个用户名呢
RETURN ((0.8 * OLDBL) + (0.2 * NEWTOTAL));
CREATE PROCEDURE PRO' at line 1以上都是错误提示。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RETURN INT
RETURN ((0.8 * OLDBL) + (0.2 * NEWTOTAL));
CREATE PROCEDURE PRO' at line 1以上都是错误提示。
CREATE FUNCTION FUNC_GETBL(NEWTOTAL INTEGER, OLDBL INTEGER) RETURNS INTEGER
BEGIN
RETURN ((0.8 * OLDBL) + (0.2 * NEWTOTAL));
END$$
定义不成功确实就是没有加这个分隔符,现已解决。
另外,请问,我该如何调用这个函数和过程呢?
我使用
SET NEW.PACKET_DBL = SELECT FUNC_GETBL(NEW.PACKET_TOTAL, @PDBL_DAY_OLD);
CALL PROC_CHECK_ALARM(NEW.PACKET_TOTAL, @PDBL_DAY_OLD);结果提示:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT FUNC_GETBL(NEW.PACKET_TOTAL, @PDBL_DAY_OLD);
CALL PROC_CHECK_ALARM(NEW.' at line 30
去掉SELECT
非常感谢!!!我还有一个问题,因为我的表太多,每个表都要建立一个这样的触发器,能不能把触发器这整个写成一个过程,然后定义触发器的时候,直接调用这个过程就好呢?如果可以的话,过程里面可以直接使用NEW.这种吗?触发器是可以的哦。
我建议你一个个的定义触发器