2010-04-24 16 views
2

Une table est:Comment faire pour passer tous les noms de colonnes dans MySQL lorsque la table a une clé primaire incrémentée automatiquement?

mysql> desc gifts; 
+---------------+-------------+------+-----+---------+----------------+ 
| Field   | Type  | Null | Key | Default | Extra   | 
+---------------+-------------+------+-----+---------+----------------+ 
| giftID  | int(11)  | NO | PRI | NULL | auto_increment | 
| name   | varchar(80) | YES |  | NULL |    | 
| filename  | varchar(80) | YES |  | NULL |    | 
| effectiveTime | datetime | YES |  | NULL |    | 
+---------------+-------------+------+-----+---------+----------------+ 

ce qui suit est ok:

mysql> insert into gifts 
    -> values (10, "heart", "heart_shape.jpg", now()); 
Query OK, 1 row affected (0.05 sec) 

, mais est-il un moyen de ne pas préciser le "10" ... et laissez chacun soit 11, 12, 13 ...?

je peux le faire en utilisant

mysql> insert into gifts (name, filename, effectiveTime) 
    -> values ("coffee", "coffee123.jpg", now()); 
Query OK, 1 row affected (0.00 sec) 

mais doivent être tous donné les noms de colonnes. Y a-t-il un moyen de ne pas les spécifier et l'incrément automatique de la clé primaire fonctionne toujours? Merci.

+2

Bien que ce soit l'opinion, en spécifiant explicitement les noms de colonnes est généralement bonne pratique, cela assure que si la table est modifiée de quelque façon à l'avenir (une colonne supplémentaire ajouté par exemple), les valeurs attendues vont dans le prévu colonnes. – ModulusJoe

Répondre

3
values (NULL, "heart", "heart_shape.jpg", now());