[SQL] java.sql.SQLException: Field 'numero_de_cliente' doesn't have a default value

GanondorfTM

Power Member
Boas ppl.

É a 1ª vez que posto neste forum e tou com um problema e gostaria que me ajudassem...

O meu programa devolve-me isto quando tento inserir um membro do agregado:
java.sql.SQLException: Field 'numero_de_cliente' doesn't have a default value.

Eu ja pesquisei no google mas sem sucesso na resolução do meu problema...

Na tabela de cliente, a sua chave primaria é numero_de_cliente e tem as seguintes caracteristicas: CREATE TABLE `cliente` ( `numero_de_cliente` int(10) unsigned NOT NULL auto_increment). Faltam na tabela outras colunas mas que sao irrelevantes pra este caso.
Eu ja tentei adicionar um default value na tabela mas sempre que meto um valor no default value, e faço apply, o MySQL diz:"The changes you made did not result in the need to alter the table."

Qualquer ajuda é bem vinda. :)
 
Não sei se é o caso.
Mas quando o campo na Base de dados é de auto incremento tu não tens a possibilidade de inserir nada, visto que a própria sgbd é que trata disso.

Desta forma, apenas inseres os valores para os outros campos da tabela.
 
Realmente, se eu desactivar essa opçao posso atribuir um valor por defeito, mas o java continua a devolver o mm erro... :S

Mais alguma sugestão?

Obgd desde ja pela ajuda.
 
Última edição:
Boas, caso seja possível, coloca aqui o código SQL que estás a utilizar para inserir o registo.
Antes disso, gostaria de dizer que, aquilo que estou a tentar inserir, não é um cliente, mas sim um membro do agregado do cliente, sendo que os dados do membro sao inseridos pelo cliente e aí é que me aparece aquele erro.

Este é a tabela do membro:
CREATE TABLE `membrodoagregado` (
`id_pessoa` int(10) unsigned NOT NULL,
`id_titular` int(10) unsigned NOT NULL default '0',
`numero_de_cliente` int(10) unsigned NOT NULL) (entre outras colunas....)

O codigo SQL para inserir o membro do agregado é:
inserir_membro_do_agregado = INSERT INTO membrodoagregado (id_pessoa, id_titular) VALUES (var_id_pessoa, var_id_titular)

O codigo SQL para inserir o cliente é:
inserir_cliente_particular = INSERT INTO cliente (tipo, id_pessoa) VALUES ('particular', var_id_pessoa)

Para inserir Pessoa:
inserir_pessoa = INSERT INTO pessoa (nome, sexo, bi, data_de_nascimento, nif, email, telefone, telemovel, morada, grupo_sanguineo, id_codigo_postal) VALUES ('var_nome', 'var_sexo', var_bi, 'var_data_de_nascimento', var_nif, 'var_email', var_telefone, var_telemovel, 'var_morada', 'var_grupo_sanguineo', var_id_codigo_postal)

Será que tenho de mudar (ou acrescentar) algum dos valores?
Eu vejo que, no codigo de SQL para inserir pessoa, nao existe nenhum id_pessoa, mas esse id_pessoa existe no constructor de Pessoa...

Muito obrigado desde ja pelo vosso apoio ;)
 
Back
Topo