sql >> Database >  >> RDS >> Mysql

MySQL - Hoe kan ik een tabel laten vallen als deze in de database bestaat?

In deze post SQL Server – 2016 – T-SQL Enhancement “Drop if Exists”-clausule hebben we de nieuwe functie gezien die is geïntroduceerd in SQL Server versie 2016. Een van mijn vrienden onlangs heeft me een vraag gesteld hoe je de tafel kunt laten vallen als deze bestaat in MySQL-database? Het was niet verwonderlijk om te zien dat niet veel mensen weten van het bestaan ​​van deze functie. MySQL heeft deze functie al een tijdje en als je MySQL DBA bent, vind je het misschien interessant dat SQL Server deze functie zojuist heeft geïntroduceerd.

Laten we dit voorbeeld nu in actie zien. Eerst zullen we een voorbeeldtabel maken.

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

Als we boven de tabel moeten laten vallen, kunnen we het volgende script uitvoeren en het neerzetten.

DROP TABLE IF EXISTS test;

Het bovenstaande script laat de tabel met de naam test vallen als deze bestaat, anders wordt er een waarschuwing weergegeven en geen fout. Dit is erg belangrijk om te begrijpen dat omdat het geen fout weergeeft, we gemakkelijk de waarschuwing in onze code kunnen omzeilen. Dit is handig als u van tevoren niet zeker weet of de tabel bestaat.

Niet alleen tabellen, maar MySQL heeft ook soortgelijke functies voor opgeslagen procedures. Laten we een snel voorbeeld van hetzelfde zien.

Hier is een script dat u kunt gebruiken om opgeslagen procedures te maken.

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

Nadat je de bovenstaande procedure hebt gemaakt, kun je het volgende script gebruiken om het te laten vallen.

DROP PROCEDURE IF EXISTS test_proc;

Onthoud, net als bij tabel, zal het de opgeslagen procedure laten vallen als die er is, anders zal het gewoon een waarschuwing teruggeven. Het is echt interessant om te zien dat MySQL deze functie al een tijdje heeft, terwijl SQL Server deze functie pas dit jaar heeft geïntroduceerd.


  1. Hoe Trigger uitschakelen in Oracle SQL Developer?

  2. Een inleiding tot tijdreeksdatabases

  3. Het kantelpunt visualiseren met Plan Explorer

  4. Wat is in SQL / MySQL het verschil tussen ON en WHERE in een join-instructie?