Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SerraVentura

Validar Estrutura de tabela

Recommended Posts

No MySql como se faz uma validação de existencia de atributo em uma tabela, para decidir se crio ou não...

 

Exemplo estou criando um script onde vai ser feita uma atualização em uma tabela, entrara um novo campo...

 

ALTER TABLE tb_release ADD home_featured TinyInt Null DEFAULT 0 AFTER emphasis;

 

mas se eu rodar pela segunda vez esse script vai dar um erro, pois o campo já existe...

 

queria validar pra v se esse campo ja existe ou não, sei que é possível, mas não achei a sintaxe...

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei fazer dessa maneira, mas da erro...

 

if(column_exists('home_featured')) then

   ALTER TABLE tb_release ADD home_featured TinyInt Null DEFAULT 0 AFTER emphasis;

   Update tb_release Set home_featured = 0;

   ALTER TABLE tb_release CHANGE home_featured home_featured TinyInt Not Null DEFAULT 0;

end if;

erro:

 

Script line: 3 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if(column_exists('home_featured')) then

 

qual a sintaxe pro mysql 5.0 adiante ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

consultando a tabela de sistema tbm não funciona...

 

IF NOT EXISTS(SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME='home_featured' AND TABLE_NAME='tb_release' AND TABLE_SCHEMA='xxx')THEN

   ALTER TABLE tb_release ADD home_featured TinyInt Null DEFAULT 0 AFTER emphasis;

   Update tb_release Set home_featured = 0;

   ALTER TABLE tb_release CHANGE home_featured home_featured TinyInt Not Null DEFAULT 0;

END IF;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.