1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Programação' iniciada por GanondorfTM, 25 de Março de 2009. (Respostas: 9; Visualizações: 3161)

  1. GanondorfTM

    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. :)
     
  2. cabiros

    cabiros Power Member

    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.
     
  3. GanondorfTM

    GanondorfTM Power Member

    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: 25 de Março de 2009
  4. Granadafeup

    Granadafeup Power Member

    qual é o SQL que o java está a tentar a correr?
     
  5. GanondorfTM

    GanondorfTM Power Member

    É o MySQL. Eu ja iniciei uma ligação á BD através do MySQL Administrator, portanto, o problema n tá na ligação.
    Das duas, uma: ou tá no código, ou tá na BD...
     
  6. AliFromCairo

    AliFromCairo Power Member

    Boas, caso seja possível, coloca aqui o código SQL que estás a utilizar para inserir o registo.
     
  7. GanondorfTM

    GanondorfTM Power Member

    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 ;)
     
  8. GanondorfTM

    GanondorfTM Power Member

    Ok, o problema era bem mais complexo do que eu pensava mas já o resolvi.

    Obrigado a todos.
     
  9. Mavors

    Mavors Power Member

    Já agora mete aqui a resolução do teu problema, poderá ajudar futuros membros com a mesma situação. ;)
     
  10. GanondorfTM

    GanondorfTM Power Member

    O problema era na BD, que tava mal construida, assim como código em falta, e por isso, é dificil especificar o problema exacto...
     

Partilhar esta Página