Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/04/2006, 15h41   #1
Membre habitué
 
Avatar de M1000
 
Développeur Web
Inscription : novembre 2003
Messages : 194
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2003
Messages : 194
Points : 133
Points : 133
Par défaut Transformer une procédure

Bonjour,

J'ai cette préocédure sous MS SQL Server:

Code :
1
2
3
4
5
6
7
8
9
CREATE PROCEDURE MA_TABLE @MemberName varchar(100), @RoleName varchar(50)
AS
IF NOT EXISTS ( SELECT * FROM MA_TABLE WHERE MemberName = @MemberName AND RoleName = @RoleName)
BEGIN
INSERT INTO MA_TABLE ( MemberName, RoleName )
VALUES ( @MemberName, @RoleName )
END
Comment je peux faire pour la retranscrire sous MySQL 4.1.18 ?

Merci
__________________
M1000
Le savoir se partage et le partage est un savoir...
M1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 16h14   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Bonjour,

Les procédures ne sont disponibles qu'à partir de MySQL 5.0.

Le NOT EXISTS n'existe pas dans le langage de procédure de MySQL, il faut utiliser un curseur pour effectuer la requête.

Cf http://dev.mysql.com/doc/refman/5.0/...rocedures.html
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 16h19   #3
Membre habitué
 
Avatar de M1000
 
Développeur Web
Inscription : novembre 2003
Messages : 194
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2003
Messages : 194
Points : 133
Points : 133
Oui okay pour la version 5 je m'en doutais mais n'y a t'il pas moyen de retranscrire ces procédures même via un codage ? en imbriquant des requêtes?
__________________
M1000
Le savoir se partage et le partage est un savoir...
M1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 19h11   #4
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Tu peux mettre une contrainte d'unicité sur (MemberName, RoleName)

Ensuite un simple
Code :
1
2
3
 
INSERT INTO MA_TABLE ( MemberName, RoleName )
VALUES ( '...', '...' )
et la requête avortera si la ligne existe déjà.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h11.


 
 
 
 
Partenaires

Hébergement Web