web-dev-qa-db-fra.com

java.sql.SQLException: le champ 'id_fournisseur' n'a pas de valeur par défaut

J'ai eu un message d'erreur de cette :

 Java.sql.SQLException: Field 'supplier_id' doesn't have a default value
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.Java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.Java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.Java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.Java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.Java:3277)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.Java:1402)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.Java:1317)

Tout le monde peut m'aider? Mes champs de base de données ne sont pas vides . Mais je veux obtenir ce résultat:

insert into xxx(name,password)values('xxx','xxx'); et insert into xxx(name,password,man)values('xxx','xxx','xxx'); les deux succès (les deux succès dans le client, mais le code Java est error, le code d'erreur en haut du titre), au lieu de insert into xxx(name,password)values('xxx','xxx') est false; mon jar mysql est mysql-connector-Java-5.0.8

8
chendurex

L'erreur est explicite. Votre colonne supplier_id n'a pas de valeur par défaut. Donc, lors de l'insertion, mysql ne peut pas trouver ce qu'il faut insérer dans la colonne supplier_id. Vous pouvez faire l'une des trois choses suivantes: -
1. Ajouter une valeur par défaut à la colonne supplier_id Utiliser - 

ALTER TABLE `xxx` ALTER `supplier_id` SET DEFAULT NULL


2. Fournissez une valeur à la colonne supplier_id lors de l'insertion .
3. Ajoutez une incrémentation automatique à la colonne et ajoutez-y une clé primaire en utilisant le code: -

ALTER TABLE `xxx` CHANGE `supplier_id` `supplier_id` INT(10)AUTO_INCREMENT PRIMARY KEY;
17
khandelwaldeval

Pour résoudre ce problème, indiquez une valeur pour supplier_id dans la variable INSERT ou créez la colonne nullable dans la base de données. 

2
peter.petrov

Ajout de cette propriété 

<property name="hbm2ddl.auto">create</property>.

A travaillé pour moi

1
Deepak

Vous utilisez la table où vous avez la colonne supplier_id. il n'a pas de valeur par défaut, au moment de l'insertion, cette colonne n'obtient aucune valeur. initialisez la colonne supplier_id avec une valeur par défaut ou utilisez auto increment si vous utilisez supplier_id comme clé primaire. 

0
praveen_programmer

Il pourrait y avoir deux cas.

  1. Vous avez déclaré la valeur par défaut de la colonne NONE et ne lui transmettez aucune valeur lors de l'insertion.

  2. Vous avez déclaré la colonne dans la base de données, mais vous ne l'avez pas déclaré de la même manière dans votre objet entité, ce qui est à l'origine de l'erreur.

0
K81094