Mysql存储过程修改,熟悉mysql的来。

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:08:42
我想达到以下存储过程的功能,可是mysql很多语法我都不熟悉,请各位帮我改改下面那些语法错误的,非常感谢。
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`Update_CompanyInfo` $$
CREATE PROCEDURE `test`.`Update_CompanyInfo`(in N_id varchar(20),in O_id varchar(20),in N_name varchar(60),in N_tel varchar(20),in N_addr varchar(20),in dealflag varchar(10))
BEGIN
declare @Tmp int
if(O_id is not null or O_id!='') then
select count(*) into @tmp from companyinfo where id=O_id;
else
select count(*) into @tmp form companyinfo where id=N_id;
end if;

if(dealflag!='delete' and @tmp=0) then
insert into companyinfo (id,name,tel,addr)values(N_id,N_name,N_tel,N_addr);
elseif(dealflag='delete' and @tmp=1) then
delete from companyinfo where id=O_id;
elseif(dealflag!='delete' and @tmp=1) then
update companyinfo set name=N_name,tel=N_tel,addr=N_addr where id=O_id;
end if;

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`Update_CompanyInfo` $$
CREATE PROCEDURE `test`.`Update_CompanyInfo`(in N_id varchar(20),in O_id varchar(20),in N_name varchar(60),in N_tel varchar(20),in N_addr varchar(20),in dealflag varchar(10))
BEGIN
declare @Tmp int #这里记得加‘;’
if(O_id is not null or O_id!='') then # 可以用<>
select count(*) into @tmp from companyinfo where id=O_id;
else
select count(*) into @tmp form companyinfo where id=N_id;
end if;

if(dealflag!='delete' and @tmp=0) then
insert into companyinfo (id,name,tel,addr)values(N_id,N_name,N_tel,N_addr);
elseif(dealflag='delete' and @tmp=1) then
delete from companyinfo where id=O_id;
elseif(dealflag!='delete' and @tmp=1) then
update companyinfo set name=N_name,tel=N_tel,addr=N_addr where id=O_id;
end if;

END $$

DELIMITER