mySQL存储过程错误
我试图在我的存储mySQL过程中使用if语句,但是当我试图在mySQL workbench中创建它时,我得到了以下错误mySQL存储过程错误,mysql,mysql-workbench,Mysql,Mysql Workbench,我试图在我的存储mySQL过程中使用if语句,但是当我试图在mySQL workbench中创建它时,我得到了以下错误error 1064:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解在“数据库”附近使用的正确语法。“表”中的date=dateIn 代码如下: DELIMITER $$ CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255
error 1064:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解在“数据库”附近使用的正确语法。“表”中的date=dateIn代码>
代码如下:
DELIMITER $$
CREATE DEFINER=`rates_d_db` PROCEDURE `byDate`(in dateIn VARCHAR(255),in action VARCHAR(255))
BEGIN
IF action = "edit" THEN EDIT `database`.`table` WHERE date=dateIn;
ELSE SELECT * FROM `database`.`table` WHERE date=dateIn;
END IF;
END$$
我对存储过程是新手,所以这可能是一个非常愚蠢的错误
先走一步 日期
是mySQL中的一个重要参数。您还必须用反勾号将其包装起来。这是您的过程的正确版本
DELIMITER $$
CREATE DEFINER=`rates_d_db` PROCEDURE `byDatee`(in dateIn VARCHAR(255),in action VARCHAR(255))
BEGIN
IF action = "edit" THEN
-- I used select below as i don't know what you want in edit either alter table or update table
SELECT * FROM `database`.`table` WHERE date=dateIn;
ELSE
SELECT * FROM `database`.`table` WHERE date=dateIn;
END IF;
END $$
也许我做错了,但这就是我所做的,仍然没有运气'table.'column'
,其中的'是反勾号。您将日期
包装在中,其中日期=dateIn
包装在反勾号中?我做了是的,就像这样'date'=dateIn
@user您需要使用反勾号'我做了,如上所述,如果我在注释部分使用反勾号,它会突出显示文本,因此我不能在这里使用它,但我使用的是这些->`您想在编辑中使用的,这是错误的(编辑数据库表其中date=dateIn;)。您想在这里更新还是更改语句。