Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - Comment supprimer une table si elle existe dans la base de données ?

Dans ce post SQL Server – 2016 – T-SQL Enhancement « Drop if Exists », nous avons vu la nouvelle fonctionnalité introduite dans SQL Server version 2016. Un de mes amis récemment m'a demandé comment supprimer une table si elle existe dans la base de données MySQL ? Il n'était pas surprenant de voir que peu de gens connaissaient l'existence de cette fonctionnalité. MySQL possède déjà cette fonctionnalité depuis un certain temps et si vous êtes administrateur de bases de données MySQL, vous trouverez peut-être intéressant que SQL Server ait introduit cette fonctionnalité.

Voyons maintenant cet exemple en action. Tout d'abord, nous allons créer un exemple de tableau.

CREATE TABLE test(id INT,name VARCHAR(100));

Si nous devons supprimer le tableau ci-dessus, nous pouvons exécuter le script suivant et le supprimer.

DROP TABLE IF EXISTS test;

Le script ci-dessus supprime la table nommée test si elle existe, sinon il affichera un avertissement et non une erreur. Ceci est très important pour comprendre que comme il n'affiche pas d'erreur, nous pouvons facilement contourner l'avertissement dans notre code. Ceci est utile si vous n'êtes pas sûr de l'existence de la table à l'avance.

Non seulement les tables, mais MySQL a également une fonctionnalité similaire disponible pour les procédures stockées. Voyons un exemple rapide pour le même.

Voici un script que vous pouvez utiliser pour créer des procédures stockées.

CREATE PROCEDURE test_proc
AS
BEGIN
SELECT 1 AS number;
END;

Après avoir créé la procédure ci-dessus, vous pouvez utiliser le script suivant pour la supprimer.

DROP PROCEDURE IF EXISTS test_proc;

Rappelez-vous, tout comme table, il supprimera la procédure stockée s'il en existe une, sinon, il renverra simplement un avertissement. Il est vraiment intéressant de voir que MySQL dispose déjà de cette fonctionnalité depuis un certain temps, alors que SQL Server vient de l'introduire cette année.