Bonjour,

Voila je rencontre un petit problème ma table.

structure de la table

CREATE TABLE commandes_ligne (
id int(11) NOT NULL AUTO_INCREMENT,
id_commande int(11) NOT NULL DEFAULT '0',
num_ligne tinyint(4) NOT NULL DEFAULT '0',
reference varchar(20) DEFAULT NULL,
qte int(11) DEFAULT NULL,
designation varchar(255) DEFAULT NULL,
remise decimal(10,2) DEFAULT NULL,
montant_ht decimal(10,2) DEFAULT NULL,
montant_ht_ligne decimal(10,2) DEFAULT NULL,
PRIMARY KEY (id),
KEY IX_commandes_ligne_id_commande (id_commande)
) ENGINE=InnoDB AUTO_INCREMENT=159115 DEFAULT CHARSET=utf8;

Entourez votre code pour bien le mettre en forme

Ce que je veux

Insérer des enreg

Ce que j'obtiens

Message d'erreur de PDO :

Erreur PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'montant_ht' cannot be null in /var/www/html/prostandv2/migration.php:907 Stack trace: #0 /var/www/html/prostandv2/migration.php(907): PDO->query('INSERT into com...') #1 /var/www/html/prostandv2/migration.php(1523): migre_lignes_commande() #2 {main

la requète :
INSERT into commandes_ligne set id_commande = 152, num_ligne=18, reference='', qte=NULL, designation='', remise=NULL, montant_ht=NULL, montant_ht_ligne=NULL

pourtant : montant_ht` decimal(10,2) DEFAULT NULL,

C'est Mysql qui délire ou moi ?

@plus

Pierre

2 réponses


betaWeb
Réponse acceptée

Salut,

La valeur par défaut est NULL, mais tu n'as pas précisé que ton champ est nullable : montant_ht decimal(10,2) NULL DEFAULT NULL,

Merci ;)
@plus
Pierre