Ir para conteúdo

POWERED BY:

Arquivado

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

Spyder.RV

[Resolvido] STORED procedore pra INSERT, com retorno de ID gerado

Recommended Posts

Salve galera,

 

Preciso montar uma procedure pra fazer o seguinte:

 

1) Inserir um Registro

2) Após rodar a inserção, verificar se foi bem sucedido e dar retorno em caso de falha no insert

3) Se bem sucedido, pegar o ID gerado e usar ele num segundo insert.

 

Exemplo,

 

1) Inserir um Usuário

INSERT INTO usuario ( nomeUsuario, login, senha, usuarioAtivo ) VALUES ('Maria', 'maria', '123', true);

 

2) O Insert foi bem sucedido? Se NÃO, a PROCEDURE retorna um aviso para ser tratado no programa.

 

3) Se bem Sucedido, pegar o ID gerado e gerar o vínculo de perfil de usuário.

INSERT INTO usuarioPermissoes ( codUsuario, codPerfil ) VALUES( O_ID_GERADO, 1 );

 

E por fim, retornar que foi bem sucedido e qual o ID gerado pra ser tratado na linguagem que o programador escolher....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera... minha pergunta ficou incompleta... Eu queria saber como descobrir se o insert foi bem sucedido... para então pegar o ID...

 

Pesquisando eu encontrei na própria documentação do mysql...

 

basta executar o comando SELECT ROW_COUNT() logo após o insert.... montei assim na stored:

 

IF ( SELECT ROW_COUNT() > 0 ) THEN

SET PK = (SELECT DISTINCT last_insert_id() from usuario);

#Aqui eu executo o restante do código para inserir em usuarioPermissoes
INSERT INTO usuarioPermissoes ( codUsuario, codPerfil ) VALUES( PK, 1 );

END IF;

 

Aí é só fazer as validações que precisar...

 

Mesmo ninguem ter conseguido responder, valeu assim mesmo.

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.