Melhor forma de fazer insert simultaneo em duas tabelas.

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal atráves de uma aplicação Java preciso fazer o insert em duas tabelas com a seguinte estrutura:
Tabela A sem um campo ID como PK e a tabela B tem um campo ID como FK da tabela A.
Minha principal dúvida é que o número ID precisam ser iguais para cada linha de ambas as tabelas e como essa aplicação vai rodar em vários pontos fiquei com dúvidas quanto ao insert para não ocorrer de uma linha referenciar o ID da outra entre as tabelas.
LoadingXp
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 65
Registrado em: Sex, 30 Mar 2007 11:57 am
Localização: SP
Contato:
Att.

Luciano Alvarenga M. Pires
DBA ORACLE CERTIFICADO
http://fulloracle.blogspot.com
------------------------------------
Dinheiro é o combustivel da sociedade industrial. Mas na sociedade da informática o combustivel, o poder, é o conhecimento.

Cria uma procedure para fazer isso para ti brother!!
Coloca os OutPuts para o Java e já era...
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Outra forma, de o valor ser o mesmo para ambas:

Tabela 1 -> sequence com NEXTVAL;
Tabela 2 -> sequence com CURRVAL;

Creio que tb mata a dúvida.

qualquer coisa, manda ai.
Avatar do usuário
fabricio.silva
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 34
Registrado em: Seg, 12 Mar 2007 7:07 am
Localização: Catanduva/SP
Fabricio M. Silva
Oracle Certified Associate
------------------------------
Catanduva - SP

Olá pyro,

Você pode usar um multiple insert:

Selecionar tudo

INSERT ALL
     INTO sal_history
     VALUES (empid, hiredate, sal)
     INTO dept_history
     VALUES (empid, deptid, hiredate)
SELECT employee_id empid, hire_date hiredate, salary sal, department_id deptid
FROM employees
WHERE employee_id > 40;
Será que isso ajuda?

Abs.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Vlw pessoal agora está rodando beleza.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes