Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 738 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 738 Rev 739
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 \