ورود

View Full Version : سوال: سوالی راجع به Store procedure در mySql



masoud_tamizy
سه شنبه 25 بهمن 1390, 07:48 صبح
من می خوام یه روال درست کنم ولی با این خطا روبرو شدم . دوستان لطفا کمک کنید .


DELIMITER $$

DROP PROCEDURE IF EXISTS `cash`.`update_user_real` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `cash`.`update_user_real`(
in `sp_national` char(10),
in `sp_first` varchar(45) ,
in `sp_last` varchar(45),
in `sp_father` varchar(45) ,
in `sp_sh` varchar(10) ,
in `sp_sh_s` varchar(15) ,
in `sp_gender` char(1) ,
in `sp_date` date ,
in `sp_location` varchar(45),
in `sp_mail` varchar(45),
in `sp_home_addr` varchar(255),
in `sp_home_phone` char(11),
in `sp_postal` char(10),
in `sp_job` varchar(45),
in `sp_job_addr` varchar(255),
in `sp_job_phone` char(11),
in `sp_mob` char(11),
in `sp_comment` text,
in `sp_fax` char(11))
BEGIN
update `cash`.`user_real`
set first_name=sp_first,
last_name=sp_last,
father_name=sp_father,
sh_sh=sp_sh,
sh_s_sh=sp_sh_s,
gender=sp_gender,
birth_date=sp_date,
birth_location=sp_location,
email=sp_mail,
home_address=sp_home_addr,
home_phone=sp_home_phone,
postal_code=sp_postal,
job_title=sp_job,
job_address=sp_job_addr,
job_phone=sp_job_phone,
mobile=sp_mob,
`comment`=sp_comment,
fax=sp_fax
where national_code=sp_national;
END $$
DELIMITER ;

خطایی هم که باهاش روبرو شدم اینه :


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$$
DELIMITER' at line 41

masoud_tamizy
سه شنبه 25 بهمن 1390, 13:12 عصر
لطفا اگه کسی می دونه به من جواب بده !!! من بهش نیاز دارم ...

Unique
سه شنبه 25 بهمن 1390, 23:39 عصر
اینو تست کن :


DROP PROCEDURE IF EXISTS `cash`.`update_user_real`;
CREATE PROCEDURE `cash`.`update_user_real`(
in `sp_national` char(10),
in `sp_first` varchar(45) ,
in `sp_last` varchar(45),
in `sp_father` varchar(45) ,
in `sp_sh` varchar(10) ,
in `sp_sh_s` varchar(15) ,
in `sp_gender` char(1) ,
in `sp_date` date ,
in `sp_location` varchar(45),
in `sp_mail` varchar(45),
in `sp_home_addr` varchar(255),
in `sp_home_phone` char(11),
in `sp_postal` char(10),
in `sp_job` varchar(45),
in `sp_job_addr` varchar(255),
in `sp_job_phone` char(11),
in `sp_mob` char(11),
in `sp_comment` text,
in `sp_fax` char(11))
BEGIN
update `cash`.`user_real`
set first_name=sp_first,
last_name=sp_last,
father_name=sp_father,
sh_sh=sp_sh,
sh_s_sh=sp_sh_s,
gender=sp_gender,
birth_date=sp_date,
birth_location=sp_location,
email=sp_mail,
home_address=sp_home_addr,
home_phone=sp_home_phone,
postal_code=sp_postal,
job_title=sp_job,
job_address=sp_job_addr,
job_phone=sp_job_phone,
mobile=sp_mob,
`comment`=sp_comment,
fax=sp_fax
where national_code=sp_national;
END

راستی این 'cash' هم که میبینی اسم Database هست ! یعنی اگه اسم Database شما یه چیز دیگست باید عوضش کنی ! اگه هم داری توی همون Database مقصد اجرا میکنی کلا .'cash' را بردار.
انجمن mysql هم ماله همین سوالات هستش ! چرا جای اشتباهی پست میزنی ؟!

MMSHFE
چهارشنبه 26 بهمن 1390, 08:02 صبح
این بحث به تالار MySQL منتقل شد.