Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Baia

update ao último registo quando o penúltimo é eliminado

Mensagens Recomendadas

Baia

quando o penúltimo registo da tabela for eliminado fazer um update ao registo que ainda resta.

criei este código mas nao funciona, precisava de ajuda.

a ideia é correr este código num triguer (after delete)


SET @num_linhas = SELECT COUNT(*) FROM  `idiomas`;
if(@num_linhas=1)
{
UPDATE `idiomas` SET `online`=1 WHERE id=(SELECT id FROM  `idiomas`)
}

Editado por Baia

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Qual o erro?

O que é que ele devia de fazer e não faz?

Já ouviste falar no "SELECT INTO"?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Triggers?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Os erros de sintaxe são os triviais de corrigir.

Os que dão problemas são os bugs.

Já agora:

Indicar que deu erro é muito giro para quem sabe o erro, para os outros não é informação.

Sem informação não dá para te ajudarmos.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baia

Vamos partir do principio.

Quando o penúltimo registo da tabela for eliminado quero que se faça um update ao único registo que ainda resta na tabela.

como mysql nao é o meu forte tentei colocar este código num Trigger(after delete) a ver se faz alguma coisa

SET @num_linhas = SELECT COUNT(*) FROM  `idiomas`;
if(@num_linhas=1)
{
UPDATE `idiomas` SET `online`=1 WHERE id=(SELECT id FROM  `idiomas`)
}

mas logo quando tento guardar o trigguer dá erro de sintaxe, se eu soubesse qual é o erro eu ia tentar procurar solução, mas também nao sei qual é

Mensagens do MySQL : #1064 - 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 'SELECT COUNT(*) FROM 'idiomas'; if(@num_linhas=1) { UPDATE 'idiomas' SET 'on' at line 1

1º- O código que eu escrevi está correto?

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

DECLARE num_linhas INT;

SELECT COUNT(*) INTO num_linhas
FROM  `idiomas;

if num_linhas=1 THEN

UPDATE `idiomas` SET `online`=1 WHERE id=(SELECT id FROM  `idiomas`)

Ainda tem erros mas já te dei um avanço.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.