Ajouter un paramètre d'entrée à la procédure
Dans les étapes précédentes, vous avez créé et appelé une procédure stockée nommée insert_employee
qui prend deux paramètres d'entrée : employee_name
et employee_department
. Dans cette étape, vous apprendrez à ajouter un autre paramètre d'entrée à la procédure.
Ajoutons un paramètre employee_salary
à la procédure insert_employee
. Cela nous permettra de spécifier le salaire de l'employé lors de l'insertion d'un nouvel enregistrement.
Tout d'abord, vous devez supprimer la procédure existante. Si vous ne la supprimez pas, vous obtiendrez une erreur lorsque vous essayerez de créer une procédure avec le même nom. Connectez-vous à MySQL si vous n'y êtes pas déjà connecté :
mysql -u root -p
Entrez le mot de passe lorsque vous y êtes invité.
USE testdb;
Supprimez la procédure existante :
DROP PROCEDURE IF EXISTS insert_employee;
Maintenant, créons la procédure stockée modifiée avec le nouveau paramètre d'entrée.
DELIMITER //
CREATE PROCEDURE insert_employee (IN employee_name VARCHAR(255), IN employee_department VARCHAR(255), IN employee_salary DECIMAL(10, 2))
BEGIN
INSERT INTO employees (name, department) VALUES (employee_name, employee_department);
-- Ajouter la mise à jour du salaire après l'insertion
UPDATE employees SET salary = employee_salary WHERE name = employee_name AND department = employee_department;
END //
DELIMITER ;
Analysons les modifications :
- Nous avons ajouté un nouveau paramètre d'entrée
IN employee_salary DECIMAL(10, 2)
à la définition de la procédure. DECIMAL(10, 2)
est le type de données pour le salaire, qui permet jusqu'à 10 chiffres avec 2 décimales.
- Nous avons ajouté une nouvelle colonne
salary
à la table employees
. Vous devez ajouter cette colonne manuellement en utilisant la déclaration SQL suivante :
ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);
- Nous avons ajouté une instruction
UPDATE
pour mettre à jour le salaire du nouvel employé inséré. Étant donné que l'instruction INSERT
ne prend pas directement en charge la définition du salaire, nous insérons d'abord l'employé, puis nous mettons à jour le salaire en fonction du nom et du service.
Maintenant, appelons la procédure insert_employee
modifiée pour insérer un nouvel employé nommé "Charlie Brown" dans le service "Finance" avec un salaire de 60000,00 :
CALL insert_employee('Charlie Brown', 'Finance', 60000.00);
Pour vérifier que les données ont été insérées correctement, vous pouvez interroger la table employees
:
SELECT * FROM employees;
Vous devriez voir une nouvelle ligne dans la table avec le nom "Charlie Brown", le service "Finance" et le salaire de 60000,00.
Vous avez maintenant ajouté avec succès un paramètre d'entrée à la procédure stockée insert_employee
et vérifié que les données ont été insérées correctement. Cela démontre comment les procédures stockées peuvent être modifiées pour répondre à de nouvelles exigences.