web-dev-qa-db-fra.com

Comment insérer une nouvelle ligne dans la base de données avec la colonne AUTO INCREMENT sans spécifier les noms de colonne?

J'ai un tableau avec les colonnes suivantes:

  • 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 existe un moyen d'ajouter une ligne sans spécifier les noms des colonnes, comme quand il n'y a pas de colonne AUTO_INCREMENT?

21
Misha Moroshko

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

INSERT INTO table_name VALUES (NULL, 'my name', 'my group')
26
Ike Walker

Encore mieux, utilisez PAR DÉFAUT au lieu de NULL. Vous souhaitez stocker la valeur par défaut, pas un 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.

11
Frank Heikens

Ajoutez simplement les noms de colonnes, oui, vous pouvez utiliser Null à la place, mais c'est une très mauvaise idée de ne jamais utiliser de noms de colonnes dans aucun insert.

2
HLGEM