所以我尝试根据我在网上找到的代码创建一个存储过程,这是代码:
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 行不断收到错误:
"Unexpected character.(near[)",
"Unexpected character.(near [)"
第 2 行出现错误:
"Unrecognized data type.(near))"
现在我检查了我的代码,找不到错误,但我不知道为什么我不断收到这些错误,有人可以解释一下,mysql新手,顺便说一句,我在 phpmyadmin sql 部分使用了这个。
最佳答案
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中使用IF语句语法here并且您可能还想检查如何声明变量,因为此代码应该没问题,但未定义 NONCOUNT 变量,请阅读有关声明变量的信息 here
关于mysql - 在 sql 中创建存储过程时,我不断收到 "unexpected character"和 "unrecognized data type"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46653173/