Como deletar duas tabelas que nao tem referencia?
Pessoal as duas tabelas nao possui referencia PK---FK, mais preciso deletar e o campo ID_SAL da tabela salario_M eh o mesmo id_gerarformual da tabela formulas
Tentei assim
Mais nao funciona, entao como faço para deletar em cascata desta forma no query, pois nao consegui fazer referencia entre estas tabelas, talvez pq ja tem dados gravados.
Tentei assim
try //começa o bloco do try/except dm.qFunc.Close; dm.qFunc.Sql.Add(´Delete from salario_m S where S.id_sal ´ +´in(select F.id_gerarformula from formulas F ´ +´where (S.id_sal = :pExclui))´); dm.qFunc.ParamByName(´pExclui´).AsInteger:=vExclui; dm.qFunc.ExecSql; //---tabela filha dm.zTFormula.Close; dm.zTFormula.Sql.Add(´Delete from Formulas ´ +´where F.id_gerarFormula = :pExclui)´); dm.zTFormula.ParamByName(´pExclui´).AsInteger:=vExclui; dm.zTFormula.ExecSql; dm.qFunc.Refresh; //faz um refresh na tabela para atualizar os dados dm.zTFormula.Refresh; except on Exc:Exception do begin ShowMessage(´Ocorreu um erro na tentantiva de Excluir os registro: ´ + Exc.Message); DM.zDB.Rollback; dm.qFunc.Refresh; //faz um refresh na tabela para atualizar os dados end; end; //final do bloco do try/except
Adriano_servitec
Curtidas 0
Respostas
Adriano_servitec
11/08/2007
Olhem como estou querendo fazer a FK:
Soh que nao consigo aponta erro
[b:5bfdbf5a2c][color=green:5bfdbf5a2c]Cannot commit transaction:[/color:5bfdbf5a2c]
[color=red:5bfdbf5a2c]violation of FOREIGN KEY constraint ´´.
violation of FOREIGN KEY constraint ´PK_SALARIO_M´ on table ´SALARIO_M´.
Foreign key reference target does not exist.[/color:5bfdbf5a2c][/b:5bfdbf5a2c]
ALTER TABLE formulas ADD CONSTRAINT fk_formulas_2 FOREIGN KEY(id_gerarformula) REFERENCES salario_m(id_sal) ON DELETE CASCADE ON UPDATE CASCADE;
Soh que nao consigo aponta erro
[b:5bfdbf5a2c][color=green:5bfdbf5a2c]Cannot commit transaction:[/color:5bfdbf5a2c]
[color=red:5bfdbf5a2c]violation of FOREIGN KEY constraint ´´.
violation of FOREIGN KEY constraint ´PK_SALARIO_M´ on table ´SALARIO_M´.
Foreign key reference target does not exist.[/color:5bfdbf5a2c][/b:5bfdbf5a2c]
GOSTEI 0
Adriano_servitec
11/08/2007
Corrigindo o post
Pessoal cheguei a criar a [b:53efa3727a]FK[/b:53efa3727a] na tabela [b:53efa3727a][u:53efa3727a]Formulas[/u:53efa3727a][/b:53efa3727a]
Mais se eu deletar algum funcionario na tabela [b:53efa3727a][u:53efa3727a]salario_m[/u:53efa3727a][/b:53efa3727a] aponta o seguinte erro
(IBExpert)
[b:53efa3727a]
A chave esta criado assim (Hj consegui fazer funcionar)
E aparece a chave FK na tabela formulas, mais nao estou conseguindo deletar em cascata, ou seja se eu deletar algum funcionario que tenha referencia com a tabela formulas aponta o erro.
Pessoal cheguei a criar a [b:53efa3727a]FK[/b:53efa3727a] na tabela [b:53efa3727a][u:53efa3727a]Formulas[/u:53efa3727a][/b:53efa3727a]
Mais se eu deletar algum funcionario na tabela [b:53efa3727a][u:53efa3727a]salario_m[/u:53efa3727a][/b:53efa3727a] aponta o seguinte erro
(IBExpert)
[b:53efa3727a]
Error Message:
----------------------------------------
Invalid insert or update value(s): object columns are
constrained - no 2 table rows can have duplicate column values.
violation of PRIMARY or UNIQUE KEY constraint ´PK_FORMULAS´ on table ´FORMULAS´.
At trigger ´FORMULAS_BD0´
At trigger ´CHECK_87´.
[/b:53efa3727a]A chave esta criado assim (Hj consegui fazer funcionar)
ALTER TABLE formulas ADD CONSTRAINT fk_formulas_2 FOREIGN KEY(id_gerarformula) REFERENCES salario_m(id_sal) ON DELETE CASCADE ON UPDATE CASCADE;
GOSTEI 0