作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 table 是
create table employee(
id int(10) auto_increment primary key,
name varchar(100),
addressId int(10)
);
go
create table address(
id varchar(10) auto_increment primary key,
name varchar(100)
);
这是我的程序
create procedure insert_employee(IN emp_name varchar(100),IN emp_address varchar(100))
begin
DECLARE @addressId varchar(10);
SELECT @addressId:=id from address where name LIKE '%'+emp_address+'%';
IF @addressId = ''
THEN
set @addressId= 'DBS-2136';-- It will come form function
INSERT INTO address values(@addressId,emp_address);
END IF
INSERT INTO employee values(emp_name,@addressId);
END
我不明白这是什么问题。如果我在 ms sql server 中编写这种类型的 if 条件,则不会出现错误。每次执行过程 ti 在 end if 中都说错误。我在谷歌搜索但对此一无所知。声明变量有问题。如果我复制表格 mysql 文档也不起作用。这是为什么?请帮我1. mysql存储过程下声明变量的正确方法是什么,2.如何在mysql存储过程中写if条件。谢谢
最佳答案
mysql 和 mssql 之间有很多差异。声明的变量不应包含'@',所有语句必须终止,+是算术运算符,如果您的程序有多个语句,则必须在前后设置分隔符。延伸阅读 How to declare a variable in MySQL? https://dev.mysql.com/doc/refman/8.0/en/stored-programs-defining.html
关于mysql - 如何在 MySQL 中创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387042/
我是一名优秀的程序员,十分优秀!