SQL nombre de colonnes ne correspond pas à la valeur de comptage d'erreur
J'ai cette table:
CREATE TABLE `message` (
`m_id` INT(11) NOT NULL AUTO_INCREMENT,
`p_id` VARCHAR(30) NOT NULL,
PRIMARY KEY (`m_id`)
)
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
et cette insérer
INSERT INTO `message` VALUES ('7');
et je reçois un "nombre de colonnes ne correspond pas à une ligne de la valeur de comptage d'erreur". Il devrait fonctionner très bien, puisque la clé primaire est auto_increment
.
votre hypothèse dans la phrase de conclusion n'est pas valable pour MySQL, peut-être pour d'autres SGBD.
OriginalL'auteur Tower | 2011-04-21
Vous devez vous connecter pour publier un commentaire.
Généralement, quand vous avez un Auto-Incrémentation de champ que vous ne voulez pas spécifier de valeur pour cette colonne. Ce qui signifie que vous supprimez la valeur de la
VALUES
Cependant que Johan points, chaque fois que le nombre de colonnes dans le tableau ne correspond pas au nombre de colonnes, vous devez spécifier la liste des colonnes de la table cible.
Sa bonne pratique de le faire de toute façon dans le cas où le nombre de colonnes ou de la colonne des changements d'ordre
J'ai mis à jour ma réponse sera claire. Quand il n'y a pas de champ de type AUTO_INCREMENT la cible des noms de Colonne peut être omis.
le code ci travailleront, mais notez que cela ne dépend pas d'une d'une colonne d'auto-incrémentation. Si le nombre de colonnes = #inséré colonnes, alors MySQL est heureux, quelle que soit autoincrement (o/n), clés (y/n) ou que ce soit.
maintenant, je vois ce que tu veux dire. Je ne pense même pas à spécifier la colonne lorsque le champ est de type auto_increment, MySQL qui vous permet de le faire, mais SQL Server n'a pas, sauf si vous DÉFINISSEZ INSERT_IDENTITY. Je vais essayer et mise à jour de la réponse il est donc conseillé
merci j'ai appris quelque chose de nouveau aujourd'hui.
OriginalL'auteur Conrad Frix
Vous devez spécifier les noms de colonne lorsque le nombre de valeurs n'est pas égal au nombre de colonnes:
OriginalL'auteur David Tang
Vous devez spécifier les colonnes à insérer. Si vous n'avez pas la Base de données suppose que les valeurs que vous fournissez sont les valeurs de chaque colonne et dans l'ordre exact des colonnes selon le schéma. Essayer de l'instruction ci-dessous.
En outre, il est juste une bonne pratique de toujours spécifier les colonnes dans une instruction insert. Il contribue pour plus de lisibilité.
OriginalL'auteur John Hartsock
Vous pouvez le faire
Cela va correspondre au nombre de colonnes et d'ignorer la valeur null est à insérer dans l'auto incrément id et insérez le
auto increment
valeur;OriginalL'auteur yaswanth
Essayez ceci:
Vous n'êtes pas spécifier les colonnes, il y en a 2, et en essayant d'insérer la valeur 1.
OriginalL'auteur gmadd
peut-être si vous faites cette
OriginalL'auteur Eric Frick