Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL – Como descartar a tabela se existir no banco de dados?

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.