Inserindo Dados

Firebird

28/11/2003

Como faço para inserir um novo registro no meio de uma table de campos sequenciais.

Minha tabela e de operações para se fabricar uma peça e os dados são ordenados assim:

OPERACAO | Descrição
10 xxx
20 xxx
30 xxx
40 xxx
50 xxx
60 xxx

Como posso fazer para inserir uma nova operação, por exemplo uma terceira operação, e a operação 30 ja existente passar a ser 40, a 40 passar a ser 50, etc.

Grato pela atenção


Gandalf

Gandalf

Curtidas 0

Respostas

Marcos Fernando

Marcos Fernando

28/11/2003

molesa use generatores com intervalo de 10

exe:

toda vez que vc manda gravar ele pega e acessenta 10,,,

crie assim
CREATE GENERATOR GERAR_ABASTECIMENTO_AVULSO;
SET GENERATOR GERAR_ABASTECIMENTO_AVULSO TO 0;

agora crie uma SP
CREATE PROCEDURE GERAR_COD_ABASTECIMENTO_AVULSO
RETURNS (
ATUAL INTEGER)
AS
BEGIN
ATUAL = GEN_ID(GERAR_ABASTECIMENTO_AVULSO, 10);
SUSPEND;
END

agora cada vez que vc for gravar cheque c a OPERAÇÃO for = 0 entaum execute a SP,,,,,


GOSTEI 0
Markk

Markk

28/11/2003

Mas como ficam os dados gravados com o código de operação igual a 30?
Com SQL seria simples, mas e a consistência dos dados?

Ex:
1º você precisaria aumentar 10 em todos os codigos começando do maior até o que você vai atualizar.

update tabela set campo=70 where campo=60
update tabela set campo=60 where campo=50
update tabela set campo=50 where campo=40
update tabela set campo=40 where campo=30

2º você poderia inserir o novo código.

insert into tabela (campo, campo1, campo2, campoN) values(30,´n´,´m´,´o´)

´AQUI SÃO OS COMANDOS, NÃO ESTOU LEVANDO EM CONTA A CONSISTÊNCIA.
A ORDEM DOS COMANDOS É IMPRESSINDÍVEL!!!´


GOSTEI 0
POSTAR