896 |
raphael |
1 |
/*
|
|
|
2 |
Ceci est une version dérivée de referonosaure.sql dans laquel est postulé que
|
|
|
3 |
les nom_ret sont un critère tangible.
|
|
|
4 |
En effet, sauf bug, il n'y a pas de raison qu'un num_nom_retenu soit moins fiable qu'un num_nom.
|
|
|
5 |
Cependant un taxon peut changer de num_nom_retenu, et auquel cas c'est bien referonosaure.sql
|
|
|
6 |
qu'il faut utiliser.
|
|
|
7 |
Cependant pour un simple "rafraîchissement" des chaînes de caractères attribuées au noms retenus,
|
|
|
8 |
ce script, referonosaure_fromNomRet.sql, doit suffire.
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
Attention, les nom_sel_nn = 0 doivent avoir disparus de cel_obs *AU PRÉALABLE* car le test
|
|
|
12 |
n'est pas effectué.
|
|
|
13 |
cf: maj-cleanup-201307.sql
|
|
|
14 |
*/
|
|
|
15 |
|
|
|
16 |
|
|
|
17 |
/* test:
|
|
|
18 |
SELECT c.nom_ret_nn, c.nom_ret, b.nom_sci, b.auteur, c.famille, b.famille, c.nt, b.num_taxonomique
|
|
|
19 |
FROM cel_obs c, tb_eflore.bdtfx_v1_01 b
|
|
|
20 |
WHERE (
|
|
|
21 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
|
|
22 |
AND nom_referentiel = 'bdtfx'
|
|
|
23 |
AND nom_ret_nn = num_nom
|
|
|
24 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
|
|
|
25 |
AND (c.famille != b.famille OR c.nom_ret != CONCAT(b.nom_sci, ' ', b.auteur) OR c.nt != b.num_taxonomique)
|
|
|
26 |
);
|
|
|
27 |
= 2 taxons: 75134 et 75468 (changement de nt)
|
|
|
28 |
*/
|
|
|
29 |
|
|
|
30 |
-- l'update BDTFX avec nom_sel_nn et nom_ret_nn corrects
|
|
|
31 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
|
|
|
32 |
c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
|
|
|
33 |
c.nt = b.num_taxonomique,
|
|
|
34 |
c.famille = b.famille
|
|
|
35 |
WHERE (
|
|
|
36 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
|
|
37 |
AND nom_referentiel = 'bdtfx'
|
|
|
38 |
AND nom_ret_nn = num_nom
|
|
|
39 |
AND (c.mots_cles_texte IS NULL OR c.mots_cles_texte NOT LIKE '%WidgetFlorileges Sauvages%') -- TODO: bug transferts multiples + mobile.js
|
|
|
40 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL OR c.famille = 'Famille inconnue')
|
|
|
41 |
);
|
|
|
42 |
-- 25584
|
|
|
43 |
SELECT ROW_COUNT() AS "BDTFX upd après correction sur nom_ret_nn + nom_sel_nn";
|
|
|
44 |
|
|
|
45 |
|
|
|
46 |
|
|
|
47 |
-- l'update BDTXA avec nom_sel_nn et nom_ret_nn corrects
|
|
|
48 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
|
|
|
49 |
c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
|
|
|
50 |
c.nt = a.num_tax,
|
|
|
51 |
c.famille = a.famille
|
|
|
52 |
WHERE (
|
|
|
53 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
|
|
54 |
AND nom_referentiel = 'bdtxa'
|
|
|
55 |
AND nom_ret_nn = num_nom
|
|
|
56 |
AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
|
|
|
57 |
);
|
|
|
58 |
-- 2
|
|
|
59 |
SELECT ROW_COUNT() AS "BDTXA upd après correction sur nom_ret_nn + nom_sel_nn";
|
|
|
60 |
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
|
64 |
-- l'update ISFAN avec nom_sel_nn et nom_ret_nn corrects --
|
|
|
65 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
|
|
|
66 |
c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
|
|
|
67 |
c.nt = i.num_taxonomique,
|
|
|
68 |
c.famille = i.famille
|
|
|
69 |
WHERE (
|
|
|
70 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
|
|
71 |
AND nom_referentiel = 'isfan'
|
|
|
72 |
AND nom_ret_nn = num_nom
|
|
|
73 |
AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)
|
|
|
74 |
);
|
|
|
75 |
-- 2 ou 0
|
|
|
76 |
SELECT ROW_COUNT() AS "ISFAN upd après correction sur nom_ret_nn + nom_sel_nn";
|
|
|
77 |
|
|
|
78 |
|
|
|
79 |
|
|
|
80 |
/*
|
|
|
81 |
Pour observer les différences:
|
|
|
82 |
wdiff -w '$(tput bold;tput setaf 1)' -x '$(tput sgr0)' -y '$(tput bold;tput setaf 2)' -z '$(tput sgr0)' pre.log post.log | \
|
|
|
83 |
ansi2html.sh --palette=solarized | \
|
|
|
84 |
sed '/^[0-9]/{/span/!d}' > diff.html
|
|
|
85 |
|
|
|
86 |
# extract les familles ayant changé: sed '/^[0-9]/{/<\/span>$/!d}'
|
|
|
87 |
# lowercase toutes les familles: awk '{ NF=tolower($NF); print }'
|
|
|
88 |
|
|
|
89 |
|
|
|
90 |
# filtre sed: changements de famille "normaux"
|
|
|
91 |
/aceraceae.*sapindaceae/d
|
|
|
92 |
/scrophulariaceae.*plantaginaceae/d
|
|
|
93 |
/globulariaceae.*plantaginaceae/d
|
|
|
94 |
/Famille inconnue.*null/d
|
|
|
95 |
|
|
|
96 |
# changement "anormaux"
|
|
|
97 |
/rosaceae.*caprifoliaceae/d
|
|
|
98 |
/valerianaceae.*caprifoliaceae/d
|
|
|
99 |
|
|
|
100 |
|
|
|
101 |
|
|
|
102 |
SELECT nom_sel, nom_ret FROM cel_obs GROUP BY nom_sel, nom_ret INTO OUTFILE '/tmp/new.csv' ;
|
|
|
103 |
SELECT id_observation, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn FROM cel_obs INTO OUTFILE '/tmp/id.csv' ;
|
|
|
104 |
$ wdiff x y|sed -n "/\x1b/p"|less
|
|
|
105 |
*/
|