Click here to Skip to main content
15,893,486 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have some doubt in this query .please someone help me.
SQL
CREATE PROCEDURE sp_insert_userdetailss
(
)
BEGIN
IF EXISTS(SELECT `name`,`email`,`phono no` FROM user_details 
WHERE email=email)
UPDATE user_details
SET `name`=`name`,email=email,`phone no`=`phone no`,photo=photo;
ELSE
INSERT INTO user_details(`name`,email,`phone no`,`photo`)
VALUES(`name`,`email`,`phone no`,`photo`);
SELECT MAX(user_details.id)
FROM user_details
INNER JOIN city ON user_details.city_id=city.id
INNER JOIN area ON user_details.area_id=area.id
INNER JOIN usertype ON user_details.type_id=usertype.id;
END;


and i am getting the error->

[SQL] CREATE PROCEDURE sp_insert_userdetailss
(
)
BEGIN
IF EXISTS(SELECT `name`,`email`,`phono no` FROM user_details 
WHERE email=email)
UPDATE user_details
SET `name`=`name`,email=email,`phone no`=`phone no`,photo=photo;
ELSE
INSERT INTO user_details(`name`,email,`phone no`,`photo`)
VALUES(`name`,`email`,`phone no`,`photo`);
SELECT MAX(user_details.id)
FROM user_details
INNER JOIN city ON user_details.city_id=city.id
INNER JOIN area ON user_details.area_id=area.id
INNER JOIN usertype ON user_details.type_id=usertype.id;
END;

[Err] 1064 - 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 'UPDATE user_details
SET `name`=`name`,email=email,`phone no`=`phone no`,photo=p' at line 7
Posted
Updated 17-Nov-11 21:55pm
v2
Comments
Al Moje 18-Nov-11 4:04am    
Hi,
change this line to :
UPDATE [dbo].[user_details]
SET [name] = 'name',[email] = 'email',[phone no] = 'phone no',[photo]= 'photo';

Change the quotes around your column names to square brackets, and the quotes to normal quote characters:
SQL
UPDATE user_details
SET [name]='name',email=email,[phone no]='phone no',photo=photo;
 
Share this answer
 
ERROR 1064 is for Reserved Words, check which word is not permitted.


http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html[^]
 
Share this answer
 
Try somthing like this

SQL
CREATE PROCEDURE sp_insert_userdetailss
           @name nvarchar(100), 
           @email nvarchar(100), 
           @phon_no nvarchar(100), 
           @photo nvarchar(100)
As
BEGIN
IF EXISTS(SELECT name,email,[phono no] FROM user_details WHERE email=@email)
	UPDATE user_details
	SET name=@name,email=@email,[phono no]=@phon_no,photo=@photo;
ELSE
	INSERT INTO user_details(name,email,[phono no],photo)
	values (@name,@email,@phon_no,@photo)

SELECT MAX(user_details.id)
FROM user_details
INNER JOIN city ON user_details.city_id=city.id
INNER JOIN area ON user_details.area_id=area.id
INNER JOIN usertype ON user_details.type_id=usertype.id;
END;
 
Share this answer
 
v2
Comments
chinta123 18-Nov-11 5:21am    
But this is in sql server ,i want in my sql .can you help me?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900