permet de dire que nous avons une table A avec une seule colonne, ID (qui est la clé primaire)
Comment insérons-nous une nouvelle ligne dans la table sans spécifier un identifiant? P>
J'ai essayé ceci p> et il ne fonctionne pas p> Column 'id' cannot be null
5 Réponses :
Essayez-le sans le `` .. Comme dans: p>
Insérer dans une valeur (SID) (NULL); // J'ai utilisé SID au lieu d'id ... p>
a fonctionné bien pour moi .. p>
également sur la création du tableau A, spécifier unique unique (SID) ... i.e p>
Créer une table A (SID INT (3) NON NULL Auto_Increment unique (SID)); P>
Le style citant ne devrait rien changer
ne fonctionne que si vous utilisez une touche primaire Auto_incrimentation (PK), car chaque PK doit avoir une valeur unique et non nulle.
drop table if exists A; create table A ( id int unsigned not null auto_increment primary key ) engine=innodb; insert into A (id) values (null),(null); mysql> select * from A order by id; +----+ | id | +----+ | 1 | | 2 | +----+ 2 rows in set (0.00 sec)
Oui c'est un champ d'incrémentation automatique
À moins que je manque quelque chose, c'est la mise en place décrite dans la question: -?
dès que "ID" car l'activation automatique de l'auto-incrément (en supposant que l'ID est un entier), vous pouvez simplement faire:
INSERT INTO A (id) values (null)
Je ne pense pas que cela fonctionne. Je l'ai essayé et j'ai essayé d'insérer le chiffre 0. Puisque j'essayais d'insérer 5 fois, il produit une erreur d'entrée en double.
@arvinsim: Il doit y avoir un problème avec votre configuration. MySQL accepte les deux null code> et 0 code> comme des valeurs pour une colonne auto_incrimentation et les interprète comme signifiant "Utiliser l'identifiant suivant".
Cela a fonctionné pour moi avec une base de données MySQL. Cela incrémente en fait l'identifiant à chaque fois.
Le problème vient pour obtenir ce numéro, signe !!
J'ai eu un problème similaire, puis j'ai remarqué que je n'ai pas appliqué les modifications lorsque j'ai changé ID code> sur la touche primaire + NON NULL + AUTO INFREMENTAL. P>
INSERT INTO `table` () VALUES (); is working too.
Pourquoi ne pas partager avec nous comment cela ne fonctionne pas exactement?
Le champ PK n'autorise pas les valeurs dupliquées ni les valeurs nulles
Les champs principaux clés ne doivent pas être nuls.
@arvinsim - Votre description de la configuration semble correcte. Vous n'avez probablement pas réussi à faire certaines des étapes que vous affirmez que vous avez faites.
@Alvaro a essayé de faire un simple insert dans le cadre et en phpmyadmin. Les deux ont renvoyé la même erreur ci-dessus. J'étais sous l'hypothèse que si NULL donne la valeur d'une ligne d'incrémentation automatique, elle essaiera de l'insérer à l'aide de la valeur d'incrémentation automatique suivante. Cela fonctionne peut-être que sur des tables avec plus d'une colonne?
Pouvez-vous poster votre définition de table pls :)