







|
MySQL.RU - Webboard
Вернуться
Несколько запросов в хранимой продцедуре. (Prad) 05/03/2009 - 12:18:08
Re: Несколько запросов в хранимой продцедуре. (dba) 10/03/2009 - 18:44:15
> Original message text:
> From: Prad - 05/03/2009 - 12:18:08
> Subject:Несколько запросов в хранимой продцедуре.
> -----------------
> Написал вот такую храниму продцедуру:
>
> CREATE DEFINER=`root`@`localhost` PROCEDURE `prAddFullName`(IN inLastname varchar(20),
> IN inFirstname varchar(20),
> IN inSecondname varchar(20))
> BEGIN
> INSERT INTO
> lastname(Lastname)
> VALUES
> (inLastname);
> INSERT INTO
> firstname(Name)
> VALUES
> (inFirstname);
> INSERT INTO
> secondname(Secondname)
> VALUES
> (inSecondname);
>
> INSERT INTO
> fullname(LastnameID,NameID,SecondnameID)
> SELECT
> lastname.id,firstname.id,secondname.id
> FROM
> lastname,firstname,secondname
> WHERE
> Lastname = inLastname
> AND Name = inFirstname
> AND Secondname = inSecondname;
> END
>
> Знаю что коряво! Подскажите как правильно?
> И вот косяк вылазит- если поля Lastname, Name или Secondname сделать уникальными может вызваться ексепшн Duplicated - как быть в таком случае?? Есть ли какой-то аналог блоков try{}catch{}(перехвата ексепшенов) в SQL?
>
From: dba - 10/03/2009 - 18:44:15
Subject:Несколько запросов в хранимой продцедуре.
-----------------
в случае уникального ключа можно использовать REPLACE или добавить в INSERT ... ON DUPLICATE KEY UPDATE
exception handling: http://dev.mysql.com/doc/refman/5.0/en/declare-handler.html
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35126
|
|