| Line -... |
Line 1... |
| - |
|
1 |
#!/bin/bash
|
| - |
|
2 |
|
| - |
|
3 |
DB='`tb_cel`.`cel_references`';
|
| - |
|
4 |
sed -e '1,/^-- DEBUT DE SCRIPT/d' -e "s;@dst;$DB;" "$0"
|
| - |
|
5 |
exit
|
| - |
|
6 |
|
| - |
|
7 |
-- DEBUT DE SCRIPT SQL substitué: ne pas retirer, ne pas modifier cette ligne
|
| - |
|
8 |
-- ci dessous ne doit exister que du SQL valide
|
| - |
|
9 |
|
| 1 |
-- TODO:
|
10 |
-- TODO:
|
| 2 |
-- fix référentiel: suppression n° de version et uniformisation
|
11 |
-- fix référentiel: suppression n° de version et uniformisation
|
| 3 |
-- SELECT DISTINCT nom_referentiel, COUNT(id_observation) AS count FROM cel_obs GROUP BY nom_referentiel ORDER BY count DESC;
|
12 |
-- SELECT DISTINCT nom_referentiel, COUNT(id_observation) AS count FROM cel_obs GROUP BY nom_referentiel ORDER BY count DESC;
|
| Line 4... |
Line 13... |
| 4 |
|
13 |
|
| 5 |
-- fix date: NULL pour les dates dans le futur
|
14 |
-- fix date: NULL pour les dates dans le futur
|
| Line -... |
Line 15... |
| - |
|
15 |
-- SELECT courriel_utilisateur, id_observation, date_observation FROM cel_obs WHERE date_observation > NOW();
|
| - |
|
16 |
|
| - |
|
17 |
|
| - |
|
18 |
-- malheureusement ceci est impossible en SQL d'où l'utilisation du shell
|
| 6 |
-- SELECT courriel_utilisateur, id_observation, date_observation FROM cel_obs WHERE date_observation > NOW();
|
19 |
-- SET @destdb = 'tb_cel';
|
| 7 |
|
20 |
-- SET @desttable = 'cel_references';
|
| 8 |
|
21 |
-- SET @dst = CONCAT('`',@destdb,'`','.`',@desttable,'`');
|
| 9 |
|
22 |
|
| Line 10... |
Line 23... |
| 10 |
DROP TABLE IF EXISTS `cel_references`;
|
23 |
DROP TABLE IF EXISTS @dst;
|
| 11 |
CREATE TABLE IF NOT EXISTS `cel_references` (
|
24 |
CREATE TABLE IF NOT EXISTS @dst (
|
| 12 |
`referentiel` CHAR(5) NOT NULL, -- ENUM ("bdtfx", "bdtfx", "bdtxa", ...),
|
25 |
`referentiel` CHAR(5) NOT NULL COMMENT 'eg: "bdtfx", "bdtfx", "bdtxa", ... No ENUM!',
|
| Line 13... |
Line 26... |
| 13 |
|
26 |
|
| 14 |
-- bdtfx
|
27 |
-- bdtfx
|
| Line 15... |
Line 28... |
| 15 |
`num_nom` INT(9) NOT NULL DEFAULT '0',
|
28 |
`num_nom` INT(9) NOT NULL DEFAULT '0' COMMENT 'depuis bdtfx',
|
| 16 |
`num_nom_retenu` VARCHAR(9) DEFAULT NULL,
|
29 |
`num_nom_retenu` VARCHAR(9) DEFAULT NULL COMMENT 'depuis bdtfx',
|
| 17 |
|
30 |
|
| Line 18... |
Line 31... |
| 18 |
-- bdtfx + nvjfl_v2007
|
31 |
-- bdtfx + nvjfl_v2007 + nva_v2013_06
|
| 19 |
`num_taxon` int(9) NOT NULL,
|
32 |
`num_taxon` int(9) NOT NULL COMMENT 'depuis bdtfx, nvjfl_v2007 et nva_v2013_06 (commun)',
|
| 20 |
|
33 |
|
| Line 21... |
Line 34... |
| 21 |
-- bdtfx
|
34 |
-- bdtfx
|
| 22 |
`nom_sci` VARCHAR(500) NOT NULL,
|
35 |
`nom_sci` VARCHAR(500) NOT NULL COMMENT 'depuis bdtfx',
|
| 23 |
`auteur` VARCHAR(100) DEFAULT NULL,
|
36 |
`auteur` VARCHAR(100) DEFAULT NULL COMMENT 'depuis bdtfx',
|
| 24 |
|
37 |
|
| - |
|
38 |
|
| - |
|
39 |
-- cel_obs
|
| 25 |
|
40 |
-- `nom_ret_nn` DECIMAL(9,0) DEFAULT NULL COMMENT 'Numéro du nom retenu.',
|
| - |
|
41 |
-- `nom_ret` VARCHAR(255) DEFAULT NULL,
|
| Line 26... |
Line 42... |
| 26 |
-- cel_obs
|
42 |
|
| 27 |
-- `nom_ret_nn` DECIMAL(9,0) DEFAULT NULL COMMENT 'Numéro du nom retenu.',
|
43 |
-- nvjfl_v2007 (`nom_vernaculaire` text NOT NULL)
|
| 28 |
-- `nom_ret` VARCHAR(255) DEFAULT NULL,
|
44 |
-- mais NULL à cause de nva
|
| 29 |
|
45 |
`nom_commun` VARCHAR(60) NULL COMMENT 'nom_vernaculaire pour nvjfl_v2007 et nva_v2013_06',
|
| 30 |
-- nvjfl_v2007 (`nom_vernaculaire` text NOT NULL)
|
46 |
PRIMARY KEY (`referentiel`, `num_nom`)
|
| 31 |
-- mais NULL à cause de nva
|
47 |
|
| 32 |
`nom_commun` VARCHAR(60) NULL,
|
48 |
) ENGINE=MyISAM \
|
| 33 |
PRIMARY KEY (`referentiel`, `num_nom`)
|
49 |
DEFAULT CHARSET=utf8 \
|
| Line 74... |
Line 90... |
| 74 |
-- table temporaire uniquement parce qu'il manque un index-key, autrement le LEFT JOIN ci-dessous est bien trop long
|
90 |
-- table temporaire uniquement parce qu'il manque un index-key, autrement le LEFT JOIN ci-dessous est bien trop long
|
| 75 |
CREATE TEMPORARY TABLE T_nva_v2013_06 ( INDEX(`num_taxon`) ) AS \
|
91 |
CREATE TEMPORARY TABLE T_nva_v2013_06 ( INDEX(`num_taxon`) ) AS \
|
| 76 |
( SELECT n.num_taxon, n.nom_vernaculaire FROM nva_v2013_06 n WHERE n.code_langue = 'fra' /* DB pb */ AND n.num_taxon IS NOT NULL /* /DB pb */ GROUP BY n.num_nom); -- aggrégat arbitraire car pas de num_statut
|
92 |
( SELECT n.num_taxon, n.nom_vernaculaire FROM nva_v2013_06 n WHERE n.code_langue = 'fra' /* DB pb */ AND n.num_taxon IS NOT NULL /* /DB pb */ GROUP BY n.num_nom); -- aggrégat arbitraire car pas de num_statut
|
| Line 77... |
Line 93... |
| 77 |
|
93 |
|
| 78 |
|
94 |
|
| 79 |
INSERT INTO `cel_references` (`referentiel`, `num_nom`, `num_nom_retenu`, `num_taxon`, `nom_sci`, `auteur`, `nom_commun`) \
|
95 |
INSERT INTO @dst (`referentiel`, `num_nom`, `num_nom_retenu`, `num_taxon`, `nom_sci`, `auteur`, `nom_commun`) \
|
| 80 |
SELECT "bdtfx", b.num_nom, b.num_nom_retenu, b.num_taxonomique, b.nom_sci, b.auteur, n.nom_vernaculaire FROM bdtfx_v1_01 b LEFT JOIN T_nvjfl_v2007 n ON (b.num_taxonomique = n.num_taxon ) \
|
96 |
SELECT "bdtfx", b.num_nom, b.num_nom_retenu, b.num_taxonomique, b.nom_sci, b.auteur, n.nom_vernaculaire FROM bdtfx_v1_01 b LEFT JOIN T_nvjfl_v2007 n ON (b.num_taxonomique = n.num_taxon ) \
|
| Line 81... |
Line 97... |
| 81 |
UNION \
|
97 |
UNION \
|