[oracle_br] Chave Estrangeira
Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
Re: [oracle_br] Chave Estrangeira
Emerson, espero que o pessoal me corrija se eu estiver errado... ACHO, pelo que eu entendo, que essa nova chave inserida só pode ser lida dentro da própria sessão, na mesma transação! Você está fazendo tudo isso na mesma transação? É PL/SQL? Em 26 de fevereiro de 2014 16:55, Emerson Sanches emerson.sanc...@gmail.com escreveu: Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
Re: [oracle_br] Chave Estrangeira
Milton, obrigado pela resposta, e desculpem minha desatenção. O erro esta gerando em outra tabela.e o erro esta correto, fui eu que nao tinha percebido. Desculpem de novo Obrigado Emerson Sanches Analista de Sistemas Em 26 de fevereiro de 2014 16:58, Milton Bastos Henriquis Jr. miltonbas...@gmail.com escreveu: Emerson, espero que o pessoal me corrija se eu estiver errado... ACHO, pelo que eu entendo, que essa nova chave inserida só pode ser lida dentro da própria sessão, na mesma transação! Você está fazendo tudo isso na mesma transação? É PL/SQL? Em 26 de fevereiro de 2014 16:55, Emerson Sanches emerson.sanc...@gmail.com escreveu: Boa tarde pessoal do grupo. Em minha aplicação, quando faço o cadastramento de um equipamento (tabela equipamentos), preciso que nesse momento seja aberta simultaneamente uma ordem de serviço para instalação (tabela OS) e um try-out de verificação (tabela tryout), ate ai fácil. O problema é que a tabela OS tem um campo chamado equipamento que é FK da tabela EQUIPAMENTOS e na aplicação eu faço a inclusão do equipamento, não comito, pego o numero do equipamento que acabei de incluir e tento colocar no campo equipamento da tabela OS, mas na hora de gravar gera um erro de chave estrangeira. Acredito que isso esteja acontecendo porque o registro inserido na tabela equipamento não esta comitado. A pergunta é a seguinte: Realmente eu preciso comitar o registro na primeira tabela pra só depois incluir um registro na segunda? Se esse comportamento for normal alguem tem alguma sugestão de como eu controlo de transação nesse caso, já que se algum dos registros gerar erro eu quero que não grave nada no banco. Obrigado pela atenção. Emerson Sanches Analista de Sistemas
[oracle_br] Chave Estrangeira
Boa Tarde Estou criando uma chave estrangeira no banco na base. /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) */ só que quando vou ver a ddl dela, esta: /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) ON DELETE SET NULL */ esse ON DELETE SET NULL ele coloca automático. tem como configurar para nao colocar? ou teria que deixar o campo codipess como NOT NULL na tabela? Obrigado -- Fabiano P. Fone: (46) 8802-9486 E-Mail: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: [oracle_br] Chave Estrangeira
Fábio, Versão do Banco? E que ferramenta/versão está gerando o teu DDL (se for usada uma ferramenta)? Boa Tarde Estou criando uma chave estrangeira no banco na base. /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) */ Ok. Normal. só que quando vou ver a ddl dela, esta: /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) ON DELETE SET NULL */ Ver de que forma? esse ON DELETE SET NULL ele coloca automático. Ele quem? tem como configurar para nao colocar? ou teria que deixar o campo codipess como NOT NULL na tabela? Por default, é NO ACTION a criação de uma Constraint de FK no Banco (9.2.x, pelo menos), conforme a 1a instrução. Se queres SET NULL ou CASCADE, deve-se especificar o mesmo. Atenciosamente, Anderson Haertel Rodrigues Administrador de Banco de Dados Florianópolis/SC - [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Chave Estrangeira
Versão 9i, estou usando o SQL PLUS. On 7/28/06, Anderson Haertel Rodrigues - FLN [EMAIL PROTECTED] wrote: Fábio, Versão do Banco? E que ferramenta/versão está gerando o teu DDL (se for usada uma ferramenta)? Boa Tarde Estou criando uma chave estrangeira no banco na base. /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) */ Ok. Normal. só que quando vou ver a ddl dela, esta: /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) ON DELETE SET NULL */ Ver de que forma? esse ON DELETE SET NULL ele coloca automático. Ele quem? tem como configurar para nao colocar? ou teria que deixar o campo codipess como NOT NULL na tabela? Por default, é NO ACTION a criação de uma Constraint de FK no Banco (9.2.x, pelo menos), conforme a 1a instrução. Se queres SET NULL ou CASCADE, deve-se especificar o mesmo. Atenciosamente, Anderson Haertel Rodrigues Administrador de Banco de Dados Florianópolis/SC - [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- Fabiano P. Fone: (46) 8802-9486 E-Mail: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: [oracle_br] Chave Estrangeira
Execute: ALTER TABLE racatran drop CONSTRAINT fk_racatran_pocapess; ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess); select status, delete_rule from user_constraints where constraint_name = 'FK_RACATRAN_POCAPESS'; E coloque o resultado. ps: Bom final de semana! ;-) Atenciosamente, Anderson Haertel Rodrigues Administrador de Banco de Dados Florianópolis/SC - [EMAIL PROTECTED] -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] nome de Fabiano P. Enviada em: sexta-feira, 28 de julho de 2006 17:14 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Chave Estrangeira Versão 9i, estou usando o SQL PLUS. On 7/28/06, Anderson Haertel Rodrigues - FLN [EMAIL PROTECTED] wrote: Fábio, Versão do Banco? E que ferramenta/versão está gerando o teu DDL (se for usada uma ferramenta)? Boa Tarde Estou criando uma chave estrangeira no banco na base. /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) */ Ok. Normal. só que quando vou ver a ddl dela, esta: /* ALTER TABLE racatran ADD CONSTRAINT fk_racatran_pocapess FOREIGN KEY (codipess) REFERENCES pocapess (codipess) ON DELETE SET NULL */ Ver de que forma? esse ON DELETE SET NULL ele coloca automático. Ele quem? tem como configurar para nao colocar? ou teria que deixar o campo codipess como NOT NULL na tabela? Por default, é NO ACTION a criação de uma Constraint de FK no Banco (9.2.x, pelo menos), conforme a 1a instrução. Se queres SET NULL ou CASCADE, deve-se especificar o mesmo. Atenciosamente, Anderson Haertel Rodrigues Administrador de Banco de Dados Florianópolis/SC - [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- Fabiano P. Fone: (46) 8802-9486 E-Mail: [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Chave estrangeira em uma tabela filho para três tabela mães
Pessoal, como resolver esse problema de relacionamento entre 4 tabelas, onde uma tabela precisa ser filha das outras 3 tabelas, explico: A tabela filha é um a tabela de compromissos, ou seja, uma agenda para armazenar registros oriundos da outras 3 tabelas mãe com chave primaria para cada tabela mãe ao qual preciso relacionar com a tabela filho AGENDA. As três tabelas mães tem um campo em comum denominado de PROCESSO, a tabela filho tabela tem esse campo PROCESSO para armazenar relacionamento. Acontece que só posso cria uma chave estrangeira na tabela filho para uma só tabela mãe. Creio que deva estar fazendo algo fora do principio, pois nem na natureza existe um filho de três mães, mas no meu caso tenho agenda que armazena dados três tabelas totalmente diferentes onde não tenho como transformar em uma só tabela. Como resolver isso. Existe algum algoritmo para solucionar, mesmo que com alguma tabela auxiliar ? Grato, Carlos Geiser -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
RES: [oracle_br] Chave estrangeira em uma tabela fil ho para três tabela mães
Aponta para a tabela mais principal das 3. Mesmo vc tendo 3 possíveis tabelas-mães, somente uma é a mais principal de todas. Se você tiver o seguinte caso: Tabela 1: processos 1,2,3 Tabela 2: processos 4,5,6 Tabela 3: processos 7,8,9 Então existem duas possibilidades. A primeira é utilizar uma chave em arco, mas nesse caso poderia acabar gerando inconsistência, portanto não é lá muito aconselhável. A segunda possibilidade e mais correta de todas seria criar uma quarta tabela com todos os números de processos das 3 tabelas. []s Alex Fernando Kirsten Oracle 9i Database Administrator Certified Professional Cetil Sistemas Email: [EMAIL PROTECTED] _ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Carlos Geiser Enviada em: quinta-feira, 8 de dezembro de 2005 14:33 Para: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED] Assunto: [oracle_br] Chave estrangeira em uma tabela filho para três tabela mães Pessoal, como resolver esse problema de relacionamento entre 4 tabelas, onde uma tabela precisa ser filha das outras 3 tabelas, explico: A tabela filha é um a tabela de compromissos, ou seja, uma agenda para armazenar registros oriundos da outras 3 tabelas mãe com chave primaria para cada tabela mãe ao qual preciso relacionar com a tabela filho AGENDA. As três tabelas mães tem um campo em comum denominado de PROCESSO, a tabela filho tabela tem esse campo PROCESSO para armazenar relacionamento. Acontece que só posso cria uma chave estrangeira na tabela filho para uma só tabela mãe. Creio que deva estar fazendo algo fora do principio, pois nem na natureza existe um filho de três mães, mas no meu caso tenho agenda que armazena dados três tabelas totalmente diferentes onde não tenho como transformar em uma só tabela. Como resolver isso. Existe algum algoritmo para solucionar, mesmo que com alguma tabela auxiliar ? Grato, Carlos Geiser -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ ___ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE http://br.rd.yahoo.com/SIG=12f2i0fc4/M=384888.7585449.8468440.1588051/D=brc lubs/S=2137114689:HM/Y=BR/EXP=1134071494/A=3154525/R=0/SIG=12igfl26t/*http:/ www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE _ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do http://br.yahoo.com/info/utos.html Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Chave estrangeira em uma tabela filh o para três tabela mães
Alex, interessante a sua idéia de criar um quarta tabela com todos os números de processos das 3 tabelas. A duvida seria a estrutura dessa quarta tabela. Seria assim: CREATE TABLE TABELA_TODOS_NUMEROS ( NOME_TABELA_MAE VARCHAR2(30) PROCESSO VARCHAR2(30) ); Porem, creio que se for só com essa estrutura o problema persiste, já que a tabela AGENDA já mantém todos o números das três tabelas. Carlos Geiser - Original Message - From: Alex Fernando Kirsten (CESUP) [EMAIL PROTECTED] To: oracle_br@yahoogrupos.com.br Sent: Thursday, December 08, 2005 5:22 PM Subject: RES: [oracle_br] Chave estrangeira em uma tabela filho para três tabela mães Aponta para a tabela mais principal das 3. Mesmo vc tendo 3 possíveis tabelas-mães, somente uma é a mais principal de todas. Se você tiver o seguinte caso: Tabela 1: processos 1,2,3 Tabela 2: processos 4,5,6 Tabela 3: processos 7,8,9 Então existem duas possibilidades. A primeira é utilizar uma chave em arco, mas nesse caso poderia acabar gerando inconsistência, portanto não é lá muito aconselhável. A segunda possibilidade e mais correta de todas seria criar uma quarta tabela com todos os números de processos das 3 tabelas. []'s Alex Fernando Kirsten Oracle 9i Database Administrator Certified Professional Cetil Sistemas Email: [EMAIL PROTECTED] _ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Carlos Geiser Enviada em: quinta-feira, 8 de dezembro de 2005 14:33 Para: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]; oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED] Assunto: [oracle_br] Chave estrangeira em uma tabela filho para três tabela mães Pessoal, como resolver esse problema de relacionamento entre 4 tabelas, onde uma tabela precisa ser filha das outras 3 tabelas, explico: A tabela filha é um a tabela de compromissos, ou seja, uma agenda para armazenar registros oriundos da outras 3 tabelas mãe com chave primaria para cada tabela mãe ao qual preciso relacionar com a tabela filho AGENDA. As três tabelas mães tem um campo em comum denominado de PROCESSO, a tabela filho tabela tem esse campo PROCESSO para armazenar relacionamento. Acontece que só posso cria uma chave estrangeira na tabela filho para uma só tabela mãe. Creio que deva estar fazendo algo fora do principio, pois nem na natureza existe um filho de três mães, mas no meu caso tenho agenda que armazena dados três tabelas totalmente diferentes onde não tenho como transformar em uma só tabela. Como resolver isso. Existe algum algoritmo para solucionar, mesmo que com alguma tabela auxiliar ? Grato, Carlos Geiser -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ ___ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE http://br.rd.yahoo.com/SIG=12f2i0fc4/M=384888.7585449.8468440.1588051/D=brc lubs/S=2137114689:HM/Y=BR/EXP=1134071494/A=3154525/R=0/SIG=12igfl26t/*http:/ www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE _ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do http://br.yahoo.com/info/utos.html Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ ___ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo