Duvida com SQL e MERGE

tenho 2 tabelas no meu sgbd com o seguinte esquema

tabela A tabela B
campo A campo B

Tem jeito de remover um registro da tabela A e inserir na tabela B usando MERGE ?

eu quero evitar ter que ir 2 vezes no banco pra fazer um SELECT e depois um DELETE

ps - eu gostaria de fazer esta operação e obter acesso ao dado removido

exemplo: String resposta = MERGE(tabelaA.campoA, tabelaB.campoB)

Só uma pergunta antes: Seu SGBD suporta esse comando?

Vai precisar disso sempre? Pode fazer uma trigger para isso, não?

1 - uso a base de dados H2 que da suporte ao MERGE

2 - uma trigger nao prejudicaria o desempneho ? isso pra mim faz diferença

[quote=mmx]1 - uso a base de dados H2 que da suporte ao MERGE

2 - uma trigger nao prejudicaria o desempneho ? isso pra mim faz diferença
[/quote]
Primeiro que nem sei se o h2 tem suporte à triggers. Mas, não. Triggers e stored procedures são sempre mais performáticas que qualquer coisa que você faça da aplicação para o banco.
A não ser que a trigger que você crie faça um bilhão de coisas, aí você vai ter problemas… Mas se é apenas para pegar o valor de uma coluna e inserir em outra tabela, não terá a mínima diferença.

[quote=drsmachado][quote=mmx]1 - uso a base de dados H2 que da suporte ao MERGE

2 - uma trigger nao prejudicaria o desempneho ? isso pra mim faz diferença
[/quote]
Primeiro que nem sei se o h2 tem suporte à triggers. Mas, não. Triggers e stored procedures são sempre mais performáticas que qualquer coisa que você faça da aplicação para o banco.
A não ser que a trigger que você crie faça um bilhão de coisas, aí você vai ter problemas… Mas se é apenas para pegar o valor de uma coluna e inserir em outra tabela, não terá a mínima diferença.[/quote]

Concordo discordando, porque não adianta também você entupir seu banco de triggers, este recurso deve sim ser usado mas com parcimônia, porque triggers em excesso também podem e prejudicam
muito a base de dados.

Não conheço seu banco de dados por isso fica um pouco complicado eu aconselhar ou não o uso deste recurso, porém acredito ser este a melhor saída sim.

[quote=joaoabi][quote=drsmachado][quote=mmx]1 - uso a base de dados H2 que da suporte ao MERGE

2 - uma trigger nao prejudicaria o desempneho ? isso pra mim faz diferença
[/quote]
Primeiro que nem sei se o h2 tem suporte à triggers. Mas, não. Triggers e stored procedures são sempre mais performáticas que qualquer coisa que você faça da aplicação para o banco.
A não ser que a trigger que você crie faça um bilhão de coisas, aí você vai ter problemas… Mas se é apenas para pegar o valor de uma coluna e inserir em outra tabela, não terá a mínima diferença.[/quote]

Concordo discordando, porque não adianta também você entupir seu banco de triggers, este recurso deve sim ser usado mas com parcimônia, porque triggers em excesso também podem e prejudicam
muito a base de dados.

Não conheço seu banco de dados por isso fica um pouco complicado eu aconselhar ou não o uso deste recurso, porém acredito ser este a melhor saída sim.[/quote]
Segundo a documentação, o h2 suporte triggers.
A questão é que se você colocar 10 triggers que realizem “trilha de auditoria”, isso sempre será muito mais rápido que fazer 10 conexões e realizar selects e inserts nas tabelas, afinal, trigger é pre compilada e roda direto no database. Alguns bancos de dados tem restrições quanto ao uso de triggers (até a versão 5 do MySQL isso era limitado a uma certa quantidade por tabela).
A pior desvantagem do uso de triggers e/ou stored procedures é a manutenção.
Se você colocar a lógica no banco de dados, sempre precisará mexer direto nele e isso pode ser custoso e complexo.

a operação e simples conforme descrevi, so que tera que ser realizada diversas vezes dentro da aplicação
nao fiz nenhum teste com triggers, mas posso tentar e verificar o desempenho

mas no caso, alguem saberia me dizer como realizar a operação usando MERGE ?

ps - no meu caso, creio que apenas 1 trigger seria necessaria no banco

Por que não usa query?
Dá para padronizar, arquivar e usar quando for necessário.