Bonjours,

je crée pour la première fois une base de données .



J'ai deux tables 'STRUCTURES' et 'ADRESSES' avec une clé primaire en auto_increment (ID_STRUCTURE, ID_ADRESSE)

Une 'Structure' a une 'Adresse' et une 'Adresse' appartient à une seul 'Structure', relation 1:1

J'ai une clé étrangère de Structure vers Adresse :


Je souhaite créer une nouvelle structure. J'utilise alors une procédure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
DELIMITER |
CREATE PROCEDURE `AJOUTER_STRUCTURE` (IN inNOM VARCHAR(255), IN inSIRET BIGINT(14), IN inADRESSE VARCHAR(255))
BEGIN
    -- Ajout de l'adresse
    INSERT INTO ADRESSES (ADRESSE) VALUES (inADRESSE);
    SET @ID_ADRESSE := (SELECT ID_ADRESSE FROM ADRESSES WHERE ADRESSE = inADRESSE);
 
    -- Ajout de la structure
    INSERT INTO STRUCTURES (NOM, SIRET, ID_ADRESSE) VALUES (inNOM, inSIRET, @ID_ADRESSE);
END|
DELIMITER ;

Je suis obliger de passer par un SELECT pour renseigner la clé étrangère de Structures ...

Existe t-il un meilleur moyen pour faire cette insertion ?

Merci.