ERROR 1364: 1364: Field 'sequencia' doesn't have a default value SQL Statement:

O nosso amigo Leão não está conseguindo postar no fórum e pediu que eu postasse para ele.
Se alguém puder responder? Cito:

"Objetivo tenho uma tabela mysql, chamada contratos_parcelas, e preciso gerar
uma triggers, para verificar a quantidade de registros conforme o campo CONTRATO
VEJA ABAIXO:

CREATE DEFINER=root@localhost TRIGGER
veiculo2016.contratos_parcelas_BEFORE_INSERT before INSERT ON
contratos_parcelas FOR EACH ROW
begin
UPDATE contratos_parcelas
set new.sequencia = (select max(sequencia) + 1 from contratos_parcelas
where contrato = new.contrato);
end

//o erro, o campo sequencia não estar na INSERT INTO

ERROR 1364: 1364: Field ‘sequencia’ doesn’t have a default value
SQL Statement:
INSERT INTO veiculo2016.contratos_parcelas (contrato, cod_cobrador,

vencimento, data_recto, valor_parcela, juro_diario, valor_juro,

valor_recebido, valor_total, Complemento) VALUES (‘51’, ‘5’, '2019-01-

01’, ‘2019-01-01’, ‘54’, ‘45’, ‘57’, ‘76’, ‘76’, ‘74’)

O campo sequencia, não consta na INSERT INTO

esse campo SEQUENCIA, não é primaria, int(6)

Tem alguma sugestão?"

Na definição da tabela contratos_parcelas, defina o default do campo sequencia como 0 (zero). Isso deve resolver.

Agora a minha dúvida é: Por que não usar uma chave primária nessa tabela, ao invés de usar um campo que não seja chave primária e ficar somando + 1 a ele?

Olá Kleyber, informei zero como padrão e ocorre mesma mensagem de erro.
Porque usando assim: Porque o campo sequencia é exatamente para cada contrato gerar sequencia propria, para saber quantas parcelas tem aquele contrato. Quero colocar como triggers para não haver erro.

Obrigado, se alguém tem uma ideia de já agradeço.

Que bom que conseguiu voltar a postar Leão.
"Porque usando assim: Porque o campo sequencia é exatamente para cada contrato gerar sequencia propria, para saber quantas parcelas tem aquele contrato. Quero colocar como triggers para não haver erro. "
Então acho que terá que ter algo, não?
Outra coisa já viu se o campo está como not null?
Pois se não é passado nada e o campo está como not null não vai dar certo mesmo

Olá Alexandre, já coloque em ambos os casos e mesmos erro, o mesmo estar acima

Olá, alguém pode dar alguma sugestão…

Aguardo e obrigado,

Leão

Você pode postar aqui a definição dessa tabela?

Olá a todos achei isso na internet e deu certo:

CREATE DEFINER=root@localhost TRIGGER veiculo2016.contratos_parcelas_BEFORE_INSERT before INSERT ON contratos_parcelas FOR EACH ROW
begin

select max(sequencia) from contratos_parcelas
into @Maxsequencia;
set new.sequencia = ifnull(@Maxsequencia,1)+1;
end

=================| achei isso aqui abaixo |========================
CREATE TABLE a
(
Id int(10) unsigned NOT NULL AUTO_INCREMENT,
A int(11) DEFAULT NULL,
CalcUniqId int(11) DEFAULT NULL,
PRIMARY KEY (Id)
) ENGINE=InnoDB;

CREATE TRIGGER a_before_ins_tr before INSERT on a
FOR EACH ROW
BEGIN
select Max(CalcUniqId) from A into @MaxCalcUniqId;
set new.CalcUniqId=IfNull(@MaxCalcUniqId,1)+1;
END $

Obrigado a todos

Leão

Oi gente… estou com um problema parecido… o erro é apresentado logo depois que acabo de cadastrar todo o produto e vou salvar. O erro apresentado é:

Erro 1364 => Field ‘item_lat’ doesn’t have a default value

Como e onde consigo corrigir isso?

Agradeço de coração se alguem puder me ajudar!