par
Cyrano » 08 mars 2008, 14:29
Pratique d'insertions en SQL :
il y a deux méthodes :
-1-
Code : Tout sélectionner
INSERT INTO ma_table VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');
-2-
Code : Tout sélectionner
INSERT INTO ma_table (col_1, col_2, ..., col_n) VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');
Dans la première méthode, on ne spécifie pas les colonnes à remplir : ça impose de mettre autant de valeurs pour VALUES qu'il y a de colonnes dans la table. Si on a une colonne auto-incrémentée (le plus souvent la clé primaire) alors on mets simplement des quotes sans valeur(chaîne vide).
Dans la seconde méthode, on indique les colonnes dans lesquelles on veut insérer des données. Donc si on a une colonne auto_incrémentée, on ne l'indique pas et on ne met que tout ou partie des autres avec pour VALUES les valeurs correspondantes.
Ce qui veut dire que ta requête :
Code : Tout sélectionner
INSERT INTO 'CP' VALUES ('', 'Aast', 'AAST', '64460', 'PYRENEES ATLANTIQUES', 'Pyrénées-Atlantiques', 'Aquitaine', 'Pau');
est parfaitement valide si ta table CP a une première colonne qui est soit en auto_increment soit a de toutes façons une valeur par défaut et que la table CP a bien 8 colonnes.
Pratique d'insertions en SQL :
il y a deux méthodes :
-1-
[code]INSERT INTO ma_table VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');[/code]
-2-
[code]INSERT INTO ma_table (col_1, col_2, ..., col_n) VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');[/code]
Dans la première méthode, on ne spécifie pas les colonnes à remplir : ça impose de mettre autant de valeurs pour VALUES qu'il y a de colonnes dans la table. Si on a une colonne auto-incrémentée (le plus souvent la clé primaire) alors on mets simplement des quotes sans valeur(chaîne vide).
Dans la seconde méthode, on indique les colonnes dans lesquelles on veut insérer des données. Donc si on a une colonne auto_incrémentée, on ne l'indique pas et on ne met que tout ou partie des autres avec pour VALUES les valeurs correspondantes.
Ce qui veut dire que ta requête :
[code]INSERT INTO 'CP' VALUES ('', 'Aast', 'AAST', '64460', 'PYRENEES ATLANTIQUES', 'Pyrénées-Atlantiques', 'Aquitaine', 'Pau'); [/code]
est parfaitement valide si ta table CP a une première colonne qui est soit en auto_increment soit a de toutes façons une valeur par défaut et que la table CP a bien 8 colonnes.