Mise à jour des tables
Les exemples ci-dessous montrent comment l’attribut row peut être utilisé pour remplacer ou mettre à jour le contenu d’une table.
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple>
<atom>nouvelle source 1</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource_tab(1) |
|---|---|
|
|
|
Comme la valeur de l’attribut row dans la colonne LatSource_tab n’a pas d’opérateur de mise à jour (c’est-à-dire +, - ou =), le contenu de la colonne est effacé avant d’ajouter les nouvelles données. Les tables ci-dessous montrent les données avant et après l’importation :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
nouvelle source 1 |
|
|
2 |
source 2 |
|
||
|
3 |
source 3 |
|
||
|
4 |
source 4 |
|
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple row="1">
<atom>nouvelle source 1</atom>
</tuple>
<tuple row="3">
<atom>nouvelle source 3</atom>
</tuple>
<tuple row="5">
<atom>nouvelle source 5</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource _tab(1) |
LatSource (3) |
LatSource_tab(5) |
|---|---|---|---|
|
|
|
|
|
Une fois encore, comme l'attribut de la première ligne ne contient pas de modificateur de mise à jour, le contenu de LatSource_tab sera effacé avant que les valeurs importées ne soient ajoutées. L'utilisation de l'attribut ligne permet de définir des positions de ligne spécifiques. L'exemple ci-dessous montre des cas avant et après l'importation XML ci-dessus :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
nouvelle source 1 |
|
|
2 |
source 2 |
2 |
|
|
|
3 |
source 3 |
3 |
nouvelle source 3 |
|
|
4 |
source 4 |
4 |
|
|
|
5 |
nouvelle source 5 |
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple row="+">
<atom>append source 1</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource_tab(+) |
|---|---|
|
|
|
Comme l’attribut row contient un opérateur de mise à jour, +, le contenu existant du champ LatSource_tab est conservé et la nouvelle valeur ajoutée à la fin de la table :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
source 1 |
|
|
2 |
source 2 |
2 |
source 2 |
|
|
3 |
source 3 |
3 |
source 3 |
|
|
4 |
source 4 |
4 |
source 4 |
|
|
5 |
append source 1 |
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple row="+">
<atom>append source 1</atom>
</tuple>
<tuple row="+">
<atom>append source 2</atom>
</tuple>
<tuple row="+">
<atom>append source 3</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource_tab(+) |
LatSource_tab(+) |
LatSource_tab(+) |
|---|---|---|---|
|
|
|
|
|
Comme l'attribut de la première ligne contient un modificateur de mise à jour (le modificateur +), les données importées mettent à jour les valeurs existantes de la table. Remarquez l'utilisation du modificateur ajouter pour chaque ligne à ajouter :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
source 1 |
|
|
2 |
source 2 |
2 |
source 2 |
|
|
3 |
source 3 |
3 |
source 3 |
|
|
4 |
source 4 |
4 |
source 4 |
|
|
5 |
append source 1 |
|||
|
6 |
append source 2 |
|||
|
7 |
append source 3 |
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple row="-">
<atom>prepend source 1</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource_tab(-) |
|---|---|
|
|
|
L'insertion d'une valeur dans la première position d'une colonne de table est similaire à l'ajout, à l'exception que l'opérateur Préfixer ligne (-) est utilisé. Lorsque la valeur est insérée, les valeurs existantes sont déplacées vers le bas de la table :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
prepend source 1 |
|
|
2 |
source 2 |
2 |
source 1 |
|
|
3 |
source 3 |
3 |
source 2 |
|
|
4 |
source 4 |
4 |
source 3 |
|
|
5 |
source 4 |
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatSource_tab">
<tuple row="2=">
<atom>remplacer la source 1</atom>.
</tuple>
<tuple row="3=">
<atom>remplacer la source 2</atom>.
</tuple>
<tuple row="6=">
<atom>remplacer la source 3</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatSource_tab(2=) |
LatSource_tab(3=) |
LatSource_tab(6=) |
|---|---|---|---|
|
|
|
|
|
L'opérateur de ligne = est utilisé pour remplacer le contenu d'une ligne dans une table. Si la ligne n'existe pas, elle est créée et la valeur appropriée est définie :
|
Avant |
|
Après | ||
|
1 |
source 1 |
1 |
source 1 |
|
|
2 |
source 2 |
2 |
remplacer la source 1 |
|
|
3 |
source 3 |
3 |
remplacer la source 2 |
|
|
4 |
source 4 |
4 |
source 4 |
|
|
5 |
|
|||
|
6 |
remplacer la source 3 |
<table name="ecollectionevents">
<tuple>
<atom name="irn">5000432</atom>
<table name="LatDeterminedByRef_tab">
<tuple row="+">
<atom name="NamFirst">prénom</atom>
<atom name="NamLast">nom</atom>
</tuple>
</table>
</tuple>
</table>
|
irn |
LatDeterminedByRef_tab(+).NamFirst |
LatDeterminedByRef_tab_tab(+).NamLast |
|---|---|---|
|
|
|
|
Tous les modificateurs de mise à jour disponibles pour les tables de valeurs peuvent être utilisés pour les tables de références. Pour les sources de données CSV, les colonnes ayant le même nom et le même attribut de ligne sont traitées comme une seule mise à jour. Par exemple, les attributs de ligne CSV ci-dessus utilisent tous deux l'opérateur d'ajout (+). Cela ne crée pas deux nouvelles lignes. La même ligne est utilisée pour contenir la référence :
|
Avant |
|
Après | ||
|
1 |
référence 1 |
1 |
référence 1 |
|
|
2 |
référence 2 |
2 |
référence 2 |
|
|
3 |
référence 3 |
3 |
référence 3 |
|
|
4 |
référence 4 |
4 |
référence 4 |
|
|
5 |
append référence 1 |

