par
sadeq » 10 mai 2006, 13:14
dans ton fichier SQL d'importation t'as des inserts porteurs de valeurs qui réalisent l'importation. L'ordre n'est pas important dans une requête INSERT, les seules références importantes sont les noms des champs.
Il faut que les noms et les types de valeurs désignés dans les inserts soient les mêmes que ceux de la table destination.
Exemple:
Soit la table "equipe" qui doit contenir les infos des équipes de foot de la coupe du monde :
Code : Tout sélectionner
--
-- Structure de la table `equipe`
--
CREATE TABLE `equipe` (
`id` int(11) NOT NULL auto_increment,
`pays` varchar(30) default NULL,
`cautch` varchar(30) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Importation des données:
Le script d'importation des données des équipes de foot :
Code : Tout sélectionner
--
-- Contenu de la table `equipe`
--
INSERT INTO `equipe` (`id`, `pays`, `cautch`) VALUES (1, 'Allemagne', NULL);
INSERT INTO `equipe` (`id`, `pays`, `cautch`) VALUES (2, 'Costa Rica', NULL);
Dans ce script, INSERT respecte l'ordre des champs de la table "equipe".
ce script est équivalent au script suivant, qui lui ne respecte pas l'ordre des champs :
Code : Tout sélectionner
--
-- Contenu de la table `equipe`
--
INSERT INTO `equipe` (`pays`, `id`) VALUES ('Allemagne', 1);
INSERT INTO `equipe` (`pays`, `id`) VALUES ('Costa Rica', 2);
Remarque:
- Dans les 1° parenthèses les champs sont cités sans respecter l'ordre d'origine (il y a même le champ "cautch" qui a disparru car il autorise les nules)
Dans les 2° parenthèses après VALUES les valeurs données respectent forcement l'ordre des champs cités dans les 1° parenthèses.
Conclusion
L'odre d'origine des champs dans la table n'est pas important lors des opérations de manipulation des données (insert, update, select) seule la référence au champs par noms et types de valeurs est obligatoire.
dans ton fichier SQL d'importation t'as des inserts porteurs de valeurs qui réalisent l'importation. L'ordre n'est pas important dans une requête INSERT, les seules références importantes sont les noms des champs.
Il faut que les noms et les types de valeurs désignés dans les inserts soient les mêmes que ceux de la table destination.
[b]Exemple:[/b]
Soit la table "equipe" qui doit contenir les infos des équipes de foot de la coupe du monde :
[code]--
-- Structure de la table `equipe`
--
CREATE TABLE `equipe` (
`id` int(11) NOT NULL auto_increment,
`pays` varchar(30) default NULL,
`cautch` varchar(30) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 [/code]
[i][b]Importation des données:[/b][/i]
Le script d'importation des données des équipes de foot :
[code]--
-- Contenu de la table `equipe`
--
INSERT INTO `equipe` (`id`, `pays`, `cautch`) VALUES (1, 'Allemagne', NULL);
INSERT INTO `equipe` (`id`, `pays`, `cautch`) VALUES (2, 'Costa Rica', NULL);
[/code]
Dans ce script, INSERT respecte l'ordre des champs de la table "equipe".
ce script est équivalent au script suivant, qui lui ne respecte pas l'ordre des champs :
[code]--
-- Contenu de la table `equipe`
--
INSERT INTO `equipe` (`pays`, `id`) VALUES ('Allemagne', 1);
INSERT INTO `equipe` (`pays`, `id`) VALUES ('Costa Rica', 2);
[/code]
Remarque:
[list]Dans les 1° parenthèses les champs sont cités sans respecter l'ordre d'origine (il y a même le champ "cautch" qui a disparru car il autorise les nules)
Dans les 2° parenthèses après VALUES les valeurs données respectent forcement l'ordre des champs cités dans les 1° parenthèses.[/list]
[b]
Conclusion[/b]
L'odre d'origine des champs dans la table n'est pas important lors des opérations de manipulation des données (insert, update, select) seule la référence au champs par noms et types de valeurs est obligatoire.