简体   繁体   English

MySQL中的存储过程语法错误

[英]Stored procedure syntax error in MySQL

I am searching the error for two hours, yet I can't find so far: 我正在搜索错误两个小时,但到目前为止找不到:

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_diffmod`
     (IN para_diffmod LONGTEXT, 
      IN para_link LONGTEXT)
BEGIN

IF EXIT (
    SELECT website_link FROM diffmod WHERE website_link=para_link
    )THEN 
    DELETE FROM diffmod WHERE website_link=para_link;

ELSE
    INSERT INTO diffmod(website_id,website_link)
    SELECT id,link
    FROM   site_html
    Where  link=para_link;

    UPDATE diffmod
    SET diffmod_content= para_diffmod
    where website_link = para_link;

END IF; 
END

The above stored procedure works as if the link found, it will delete the row! 上面的存储过程就像找到链接一样工作,它将删除该行! If not, it will add and update the new link. 如果没有,它将添加并更新新链接。

Change If EXIT to IF EXISTS 将“退出”更改为“如果存在”

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_diffmod`( 
IN para_diffmod LONGTEXT, 
IN para_link LONGTEXT)
BEGIN

IF EXISTS (
    SELECT website_link FROM diffmod WHERE website_link=para_link
    )THEN 
    DELETE FROM diffmod WHERE website_link=para_link;

ELSE
    INSERT INTO diffmod(website_id,website_link)
    SELECT id,link
    FROM   site_html
    Where  link=para_link;

    UPDATE diffmod
    SET diffmod_content= para_diffmod
    where website_link = para_link;

END IF; 
END

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM