2010-08-16 6 views
11

J'ai une table avec les colonnes suivantes:Comment insérer une nouvelle ligne dans la base de données avec la colonne AUTO_INCREMENT sans spécifier de noms de colonne?

  • id - INT UNSIGNED AUTO_INCREMENT
  • name - VARCHAR (20)
  • group - VARCHAR (20)

Je sais que je peux ajouter une ligne comme celle-ci:

INSERT INTO table_name (name, group) VALUES ('my name', 'my group') 

Je me demande s'il y a un moyen d'ajouter une ligne sans spécifier les noms de colonnes, comme quand il n'y a pas de colonne AUTO_INCREMENT?

Répondre

14

Pour certaines bases de données, vous pouvez simplement insérer explicitement une NULL dans la auto_increment colonne:

INSERT INTO table_name VALUES (NULL, 'my name', 'my group') 
+0

Parfait! Merci beaucoup !! –

+8

Cependant, c'est une pratique extrêmement mauvaise et ne devrait pas être faite. Vous devriez toujours insérer des instructions avec les noms des colonnes autrement si les colonnes sont réarrangées d'une façon ou d'une autre, vous mettrez les données dans la mauvaise colonne. Si une autre colonne est ajoutée, l'insertion échouera. Je ne peux pas assez insister sur la qualité de la pratique. Vous pouvez détruire votre intégrité des données en raison d'un peu de paresse. Et honnêtement, puisque vous pouvez glisser et droger les noms de colonnes à partir du navigateur d'objets, nous parlons de risquer vos données parce que vous étiez trop paresseux pour passer une minute supplémentaire à une tâche. – HLGEM

+0

OK, merci pour le conseil! –

1

il suffit d'ajouter les noms de colonnes, oui, vous pouvez utiliser Null à la place, mais est une très mauvaise idée de ne pas utiliser la colonne noms dans n'importe quel insert, jamais.

8

Encore mieux, utilisez DEFAULT au lieu de NULL. Vous voulez stocker la valeur par défaut, pas une valeur NULL qui pourrait déclencher une valeur par défaut.

Mais vous feriez mieux de nommer toutes les colonnes, avec un morceau de SQL, vous pouvez créer tous les INSERT, UPDATE et DELETE dont vous avez besoin. Vérifiez simplement le information_schema et construisez les requêtes dont vous avez besoin. Il n'est pas nécessaire de tout faire à la main, SQL peut vous aider.

+0

Cela a été utile pour Postgres. L'utilisation d'une valeur NULL dans 'ERROR: null dans la colonne" id "ne respecte pas la contrainte non nulle' – Meredith

Questions connexes