1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Auto incremento (Trigger) não funciona.

Discussão em 'Progress 4GL' iniciado por Rudy, Junho 10, 2011.

  1. Rudy

    Rudy Membro Participativo

    Alguém pode me ajudar com um campo auto incremento?

    Estou fazendo importação de arquivos csv e armazenando os dados em uma tabela.
    Criei uma tabela com os campos necessários e com o campo codigo, que é chave primária e único. Criei uma sequence com valor inicial 0 e incrementa sempre 1, mas sempre que tento importar os dados do csv ele cria apenas o primeiro registro e aparece a mensagem de erro, "codigo 0 já existe na tabela".

    Limpei a tabela e executei uma procedure com o código:
    Código:
    CREATE <tabela>.
    A primeira vez que executo esta procedure ele não da erro, a partir da segunda vez ela começa a exibir a mensagem acusando que o codigo 0 já existe na tabela.

    Alguém pode me ajudar?

    Minha trigger esta assim:
    Código:
    TRIGGER PROCEDURE FOR ASSIGN OF <tabela>.codigo.
    ASSIGN <tabela>.codigo = NEXT-VALUE(cod<tabela>).
    
  2. Rodrigo Rossetto

    Rodrigo Rossetto Membro Participativo

    Re: Auto incremento (Trigger) não funciona.

    Você tem necessidade de controlar qualquer CREATE nessa tabela?
    Se não, eu imagino que seria melhor fazer isso via programa. O processamento é até mais rápido.


    Em todo caso acho que nesse caso não seria o evento ASSIGN, já tentou WRITE?
  3. atila.cm

    atila.cm Membro Participativo

    Re: Auto incremento (Trigger) não funciona.

    Verifique se nas propriedades da sequence a informação de INCREMENT BY está com 1 (um).
    Abraços
    Atila
  4. Rudy

    Rudy Membro Participativo

    Re: Auto incremento (Trigger) não funciona.

    Sim, o INCREMENT BY está com 1
  5. atila.cm

    atila.cm Membro Participativo

    Re: Auto incremento (Trigger) não funciona.

    Rudy, o next-value está na trigger de assign e como você não modifica o campo código ela não é executada, coloque o next-value em uma trigger de create que vai funcionar.
    Abraços
    Atila
  6. Rudy

    Rudy Membro Participativo

    Re: Auto incremento (Trigger) não funciona.

    Alterei a trigger para isto:
    Código:
    TRIGGER PROCEDURE FOR CREATE OF <tabela>.codigo.
    
    Só agora não posso salvar, ele esta vendo o nome da tabela como se fosse o banco, ai eu coloquei assim:
    Código:
    TRIGGER PROCEDURE FOR CREATE OF <db>.<tabela>.codigo.
    
    E ela não entende após CREATE OF

Compartilhe esta Página