Line 1... |
Line 1... |
1 |
/*
|
1 |
/*
|
2 |
Cleanup des observation ayant un nom_ret_nn à 0 (mais un nom_ret défini...):
|
2 |
Cleanup des observation ayant un nom_ret_nn à 0 (mais un nom_ret défini...):
|
3 |
En effet, on peut pour l'instant POSTer $nom_ret, d'où bien souvent nom_sel == nom_ret, cependant nom_ret_nn = 0
|
3 |
En effet, on peut pour l'instant POSTer $nom_ret, d'où bien souvent nom_sel == nom_ret, cependant nom_ret_nn = 0
|
4 |
(pas d'autodétection).
|
4 |
(pas d'autodétection).
|
5 |
Nous pourrions donc les nullifier sans remord, ... mais ...
|
5 |
Nous pourrions donc les nullifier sans remord, ... mais ...
|
6 |
nom_ret == 0 est VALIDE (car bdtfx.num_nom_retenu == 0 est valide) [ 3800 nom_retenu "orphelins" de taxon ]
|
6 |
nom_ret_nn == 0 est VALIDE (car bdtfx.num_nom_retenu == 0 est "valide", 3960 taxons sont "orphelins" de nom_retenu)
|
Line 7... |
Line 7... |
7 |
|
7 |
|
8 |
1) créer un index pour les jointures:
|
8 |
1) créer un index pour les jointures:
|
9 |
CREATE INDEX i_nom_ret ON `BASESOURCE`.`TABLEBDTFX` (`nom_sci`(8))
|
9 |
CREATE INDEX i_nom_ret ON `BASESOURCE`.`TABLEBDTFX` (`nom_sci`(8))
|
10 |
2) regarder les num_nom_ret orphelins de taxon en BDTFX:
|
10 |
2) regarder les num_nom_ret orphelins de taxon en BDTFX:
|
Line 13... |
Line 13... |
13 |
SELECT * FROM `BASESOURCE`.`TABLEBDTXA` WHERE num_nom_retenu = 0; # 0
|
13 |
SELECT * FROM `BASESOURCE`.`TABLEBDTXA` WHERE num_nom_retenu = 0; # 0
|
14 |
4) regarder les orphelins équivalents dans `BASEEDIT`.`cel_obs`:
|
14 |
4) regarder les orphelins équivalents dans `BASEEDIT`.`cel_obs`:
|
15 |
SELECT date_observation, SUBSTRING(nom_sel, 1, 50), nom_ret_nn, nom_ret, b.nom_sci FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0; # 7740
|
15 |
SELECT date_observation, SUBSTRING(nom_sel, 1, 50), nom_ret_nn, nom_ret, b.nom_sci FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0; # 7740
|
Line 16... |
Line 16... |
16 |
|
16 |
|
17 |
Donc ceux dont le nom_ret à été POSTé manuellement et qui matchent le nom_sci de BDTFX : on les conserve.
|
17 |
Donc ceux dont le nom_ret à été POSTé manuellement et qui matchent le nom_sci de BDTFX : on les conserve.
|
Line 18... |
Line 18... |
18 |
Mais les autres, qui ont un nom_ret probablement erroné et un nom_ret_nn à 0, on NULLify les données censées être (correctement) autogénérées !
|
18 |
Mais les autres, qui ont un nom_ret probablement erroné et un nom_ret_nn à 0, on NULLify les données car elles seront théoriquement correctement autoregénérées !
|
19 |
|
19 |
|
20 |
Cela concerne:
|
20 |
Cela concerne:
|
21 |
SELECT date_observation, SUBSTRING(nom_sel, 1, 50), nom_ret_nn, nom_ret, b.nom_sci FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0
|
21 |
SELECT date_observation, SUBSTRING(nom_sel, 1, 50), nom_ret_nn, nom_ret, b.nom_sci FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b ON (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0
|
22 |
AND c.nom_ret != '' AND id_observation NOT IN ( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 ); # 960
|
22 |
AND c.nom_ret != '' AND id_observation NOT IN ( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 ); # 960
|
23 |
*/
|
23 |
*/
|
24 |
-- D'où la requête :
|
24 |
-- D'où la requête :
|
25 |
UPDATE `BASEEDIT`.`cel_obs` SET nom_sel_nn = NULL, nom_ret = NULL, nom_ret_nn = NULL, nt = NULL, famille = NULL WHERE id_observation IN
|
25 |
UPDATE `BASEEDIT`.`cel_obs` SET nom_sel_nn = NULL, nom_ret = NULL, nom_ret_nn = NULL, nt = NULL, famille = NULL WHERE id_observation IN
|
Line 26... |
Line 26... |
26 |
( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0
|
26 |
( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c LEFT JOIN `BASESOURCE`.`TABLEBDTFX` b on (c.nom_ret = b.nom_sci) WHERE nom_ret_nn = 0
|
27 |
AND c.nom_ret != '' AND id_observation NOT IN ( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 ) );
|
27 |
AND c.nom_ret != '' AND id_observation NOT IN ( SELECT id_observation FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b WHERE c.nom_ret = b.nom_sci AND c.nom_ret_nn = 0 ) );
|
28 |
|
- |
|
Line 29... |
Line 28... |
29 |
-- TODO
|
28 |
|
30 |
-- UPDATE `BASEEDIT`.`cel_obs` SET nom_ret_nn = NULL WHERE nom_ret_nn = 0;
|
29 |
-- TODO
|
31 |
-- UPDATE `BASEEDIT`.`cel_obs` SET nom_sel_nn = NULL WHERE nom_sel_nn = 0;
|
30 |
-- UPDATE `BASEEDIT`.`cel_obs` SET nom_ret_nn = NULL WHERE nom_ret_nn = 0;
|
32 |
|
31 |
|
33 |
/*
|
32 |
/*
|
34 |
UPDATE `BASEEDIT`.`cel_obs` SET nom_sel = NULL, nom_sel_nn = NULL, nom_ret = NULL, nom_ret_nn = NULL, nt = NULL, famille = NULL,
|
33 |
UPDATE `BASEEDIT`.`cel_obs` SET nom_sel = NULL, nom_sel_nn = NULL, nom_ret = NULL, nom_ret_nn = NULL, nt = NULL, famille = NULL,
|
35 |
FROM `BASEEDIT`.`cel_obs`
|
- |
|
36 |
WHERE (nom_sel = '' OR nom_sel IS NULL) AND
|
34 |
FROM `BASEEDIT`.`cel_obs`
|
37 |
(
|
35 |
WHERE nom_sel IS NULL AND
|
38 |
(nom_ret IS NOT NULL AND nom_ret != '') OR
|
36 |
(
|
- |
|
37 |
(nom_ret IS NOT NULL AND nom_ret != '') OR
|
- |
|
38 |
(nt IS NOT NULL AND nt != 0 AND nt != '') OR
|
- |
|
39 |
(famille IS NOT NULL AND famille != '')
|
39 |
(nom_ret_nn IS NOT NULL AND nom_ret_nn != 0 AND nom_ret_nn != '') OR
|
40 |
)
|