Jump to content
Baia

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

Recommended Posts

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`)
}

Edited by Baia

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other sites
Baia

o que deveria acontecer, era que quando a tabela ficasse apenas com um registo, forçar uma coluna a ter um determinado valor

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other 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?

Edited by Rui Carlos

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.