Neste post SQL Server – 2016 – T-SQL Enhancement cláusula “Drop if Exists”, vimos o novo recurso introduzido no SQL Server versão 2016. Um dos meus amigos recentemente me fez uma pergunta sobre como descartar a tabela, se existir no banco de dados MySQL? Não foi surpreendente ver que muitas pessoas não sabem sobre a existência desse recurso. O MySQL já tem esse recurso há algum tempo e se você é DBA do MySQL, pode achar interessante que o SQL Server acaba de introduzir esse recurso.
Vamos ver este exemplo em ação agora. Primeiro, vamos criar uma tabela de amostra.
CREATE TABLE test(id INT,name VARCHAR(100));
Se tivermos que pular acima da tabela, podemos executar o seguinte script e descartá-lo.
DROP TABLE IF EXISTS test;
O script acima descarta a tabela chamada test se existir, caso contrário exibirá um aviso e não um erro. Isso é muito importante para entender que, como não está exibindo erro, podemos facilmente contornar o aviso em nosso código. Isso é útil se você não tiver certeza da existência da tabela com antecedência.
Não apenas tabelas, mas o MySQL também tem recursos semelhantes disponíveis para procedimentos armazenados. Vejamos um exemplo rápido para o mesmo.
Aqui está um script que você pode usar para criar procedimentos armazenados.
CREATE PROCEDURE test_proc AS BEGIN SELECT 1 AS number; END;
Após criar o procedimento acima, você pode usar o seguinte script para descartá-lo.
DROP PROCEDURE IF EXISTS test_proc;
Lembre-se, assim como a tabela, ela descartará o procedimento armazenado se houver um, caso contrário, apenas retornará um aviso. É realmente interessante ver o MySQL já ter esse recurso há algum tempo, enquanto o SQL Server acaba de introduzir esse recurso neste ano.