我不断得到一个意外的角色"和#34;无法识别的数据类型"在sql中创建存储过程时出错

时间:2017-10-09 18:52:39

标签: mysql phpmyadmin

所以我试图根据我在网上找到的代码创建一个存储过程,这是代码:

CREATE PROCEDURE [dbo].[Customers_CRUD]
      @Action VARCHAR(10)

AS
BEGIN
      SET NOCOUNT ON;


      --INSERT
      IF @Action = 'INSERT'
      BEGIN
            INSERT INTO Table
            VALUES (a, b)
      END

      --UPDATE
      IF @Action = 'UPDATE'
      BEGIN
            UPDATE table
            SET Name = @Name, Country = @Country
            WHERE CustomerId = @CustomerId
      END

      --DELETE
      IF @Action = 'DELETE'
      BEGIN
            DELETE FROM Table 
            WHERE CustomerId = @CustomerId
      END
END

使用此数据库:

**friend**-->
 Content:user_id,friend_id;
  **user**-->
    Content:user_id,email,password;
      **user_extra**-->
         Content:user_id,name,surname,birth_date,country_of_birth,user_name;

现在我在第1行遇到错误:

  

"意外的角色。(靠近[]",
  "意外的角色。(靠近[]"

并且第2行出错:

  

"无法识别的数据类型。(近))"

现在我检查了我的代码并且找不到错误但我不知道为什么我一直得到这些错误可以有人关心解释,新的mysql和btw我在phpmyadmin sql部分使用它。

1 个答案:

答案 0 :(得分:0)

CREATE PROCEDURE  SP_Name(IN Action VARCHAR(10))
BEGIN
      SET NOCOUNT ON ;


      --INSERT
      IF (@Action = ‘INSERT’) THEN
      BEGIN
            INSERT INTO Table
            VALUES (a, b)
      END
      END IF ;
      --UPDATE
      IF( @Action = ‘UPDATE’) THEN 
      BEGIN
            UPDATE table
            SET Name = @Name, Country = @Country
            WHERE CustomerId = @CustomerId
      END
    END IF ; 
      --DELETE
      IF (@Action = ‘DELETE’) THEN 
      BEGIN
            DELETE FROM Table 
            WHERE CustomerId = @CustomerId
      END
  END IF ;
END

我认为这对你有用   了解如何创建过程语法here以及如何在mysql here中使用IF语句语法,你可能也想检查如何声明变量,因为这段代码应该没问题,但NONCOUNT变量未定义,请阅读声明变量here