Campos sequenciais

Olá Pessoal!

Estou necessitando de uma opinião para uma situação:

Tenho um cadastro de produtos.
A PK é ProCod varchar(20).
Tenho outro campo ProSeq (sequencial), no banco está como auto incremento.

Preciso gravar dentro do ProCod o conteúdo do ProSeq se o ProCod for vazio.

Só não sei em que momento faço isso, no BeforeInsert, pois já tentei e não consigo gravar.

Alguém poderia me ajudar?

Obrigado desde já!

Faça na trigger bef insert no próprio banco de dados

Recomendo fortemente você assistir o vídeo do nosso colega Kleyber sobre banco de dados.
https://www.youtube.com/watch?v=qPxf5mXUi_8

Olá!

Fiz uma trigger:

CREATE TRIGGER InsereCodPro
   BEFORE INSERT
   ON produtos
   FOR EACH ROW
BEGIN
   IF (CHAR_LENGTH(TRIM(NEW.ProCod)) = 0 Or NEW.ProCod Is Null Or NEW.ProCod = '.') THEN
       SET NEW.ProCod = (SELECT IFNULL(MAX(ProSeq), 0) + 1 FROM produtos);
   END IF;
END;

Quando executo via banco (comando insert), funciona, porém quando vou executar a aplicação ocorre o erro abaixo:
[b]Atenção Fechar
Erro ao acessar o banco de dados
Duplicate entry ‘1’ for key ‘PRIMARY’

View SQL[/b]

Se alguém puder dar-me uma luz à esta situação, agradeço!

Marlon.