ram_bh Posted July 5, 2016 Report Share Posted July 5, 2016 Prezados, Após um Insert na tabela_1 preciso fazer um Insert na tabela_2 atribuindo a uma coluna da tabela_2 com o valor de uma coluna da tabela_1 que foi gerado automaticamente após o Insert. Insert Into TB_um ( cod_item, des_item, qtd_item, pre_item, des_item) values (....) // aqui é gerado um valor para id_um Em seguida, preciso fazer outro Insert: Insert Into TB_dois( id_um, cod_item ) values (....) // aqui é gerado id_dois e preciso do id_um que foi gerado no insert anterior. Alguém para ajudar? Conseguir ser claro? Estou usando Firebird. Obrigado! Rodrigo Melo Belo Horizonte Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted July 5, 2016 Report Share Posted July 5, 2016 Ola Rodrigo , em mysql eu faço assim cId:=SqlArray("SELECT last_insert_id() from grupo LIMIT 1") agora não sei lhe dizer se o firebird tem a funcao last_insert_id() Abraços Quote Link to comment Share on other sites More sharing options...
ram_bh Posted July 6, 2016 Author Report Share Posted July 6, 2016 Bom dia! A solução pode ser de pelo menos duas maneiras no Firebird: 1) Recuperar último valor do ID da tabela_1 e depois fazer o insert na tabela_2: Select Max(ID_campo) From Tabela_1 2) Fazer insert na tabela_2 com select na tabela_1 das colunas que deseja copiar da tabela_1: Insert Into Tabela_2(ID_campo1, ID_campo2,outras_colunas) Values ((Select (ID_campo1, ID_campo2) From Tabela_1 Where Max(ID_campo1),outras_colunas) No meu caso, que estou estudando a mudança de DBF para SQL usando o Firebird, optei pela 2 opção. Mas existem funções em outros bancos SQL (MySQL, MariaDB, Oracle, SQL-Server e outros) que recuperam o valor da última chave sem pesquisa. Mas o objetivo é tentar fazer a conversão para SQL independente do banco de dados utilizado. Como gosto de gastronomia, construí um sistema que armazena receitas inicialmente em DBF e agora estou migrando para SQL. Vamos ver como vai ficar... Se alguém quiser ver como está ficando posso enviar uma demo... Obrigado e um abraço! Rodrigo Melo Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.