创建函数时出现SQL语法错误 分隔符// 创建函数NodeState(当前时间DATETIME、上次检查DATETIME、轮询时间INT) 返回varchar(20) 开始 声明node_state VARCHAR(20)为默认灰色; 声明时间间隔日期时间; 设置时间间隔=时间差(秒,当前时间,最后检查); SET perc=轮询时间*0.05; 如果时间间隔>perc,则 设置节点_状态='红色'; ELSEif time_gap=perc then 设置节点_状态='橙色'; 其他时间间隔–上次检查“灰色”?我已对此进行了更改,但仍然出现此错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行“DELIMITER//CREATE FUNCTION NodeEstate(current_time2 DATETIME,lastcheck DATE)”附近使用的正确语法,我没有声明perc…但我仍然得到错误 DELIMITER // CREATE FUNCTION NodeState ( current_time DATETIME, lastcheck DATETIME, polling_time INT ) RETURNS varchar(20) BEGIN DECLARE node_state VARCHAR(20) DEFAULT grey; DECLARE time_gap DATETIME; SET time_gap = TIMESTAMPDIFF(SECOND, current_time, lastcheck); SET perc = polling_time*0.05; if time_gap > perc then SET node_state = 'red'; ELSEif time_gap = perc then SET node_state = 'orange'; ELSEif time_gap – lastcheck < perc then SET node_state = 'green'; END IF; RETURN node_state; END; //

创建函数时出现SQL语法错误 分隔符// 创建函数NodeState(当前时间DATETIME、上次检查DATETIME、轮询时间INT) 返回varchar(20) 开始 声明node_state VARCHAR(20)为默认灰色; 声明时间间隔日期时间; 设置时间间隔=时间差(秒,当前时间,最后检查); SET perc=轮询时间*0.05; 如果时间间隔>perc,则 设置节点_状态='红色'; ELSEif time_gap=perc then 设置节点_状态='橙色'; 其他时间间隔–上次检查“灰色”?我已对此进行了更改,但仍然出现此错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行“DELIMITER//CREATE FUNCTION NodeEstate(current_time2 DATETIME,lastcheck DATE)”附近使用的正确语法,我没有声明perc…但我仍然得到错误 DELIMITER // CREATE FUNCTION NodeState ( current_time DATETIME, lastcheck DATETIME, polling_time INT ) RETURNS varchar(20) BEGIN DECLARE node_state VARCHAR(20) DEFAULT grey; DECLARE time_gap DATETIME; SET time_gap = TIMESTAMPDIFF(SECOND, current_time, lastcheck); SET perc = polling_time*0.05; if time_gap > perc then SET node_state = 'red'; ELSEif time_gap = perc then SET node_state = 'orange'; ELSEif time_gap – lastcheck < perc then SET node_state = 'green'; END IF; RETURN node_state; END; //,mysql,Mysql,我正在尝试创建这个函数,我一行一行地去做,但是我找不到错误 我得到的错误是1064(42000)我将更改当前时间参数的名称,因为存在当前时间()如果代码引用参数或函数,则函数和mysql可能无法在代码中的某些位置进行区分。如果出现语法错误,错误消息是什么?默认为灰色->“灰色”?我已对此进行了更改,但仍然出现此错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行“DELIMITER//CREATE FUNCTION NodeEstate(current_time2

我正在尝试创建这个函数,我一行一行地去做,但是我找不到错误


我得到的错误是1064(42000)

我将更改当前时间参数的名称,因为存在当前时间()如果代码引用参数或函数,则函数和mysql可能无法在代码中的某些位置进行区分。

如果出现语法错误,错误消息是什么?默认为灰色->“灰色”?我已对此进行了更改,但仍然出现此错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行“DELIMITER//CREATE FUNCTION NodeEstate(current_time2 DATETIME,lastcheck DATE)”附近使用的正确语法,我没有声明perc…但我仍然得到错误
DELIMITER //
CREATE FUNCTION NodeState ( current_time DATETIME,  lastcheck DATETIME, polling_time INT )
RETURNS varchar(20)

BEGIN

    DECLARE node_state VARCHAR(20) DEFAULT grey;
    DECLARE time_gap DATETIME; 
    SET time_gap = TIMESTAMPDIFF(SECOND, current_time, lastcheck);
    SET perc =  polling_time*0.05;

    if time_gap > perc then 
        SET node_state = 'red';
    ELSEif time_gap = perc then 
        SET node_state = 'orange';
    ELSEif time_gap – lastcheck < perc then 
        SET node_state = 'green';
    END IF;

   RETURN node_state;

END; //