Partie I
SQL de base
200
© Éditions Eyrolles
SELECT CONSTRAINT_NAME, COLUMN_NAME AS 'Cle',
AS 'Base cible',
AS 'Table pere',
AS 'Col pere'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'bdsoutou' AND TABLE_NAME='Installer'
AND REFERENCED_TABLE_SCHEMA IS NOT NULL;
+----------------------------+--------+------------+------------+----------+
| CONSTRAINT_NAME
| Cle
| Base cible | Table pere | Col pere |
+----------------------------+--------+------------+------------+----------+
| fk_Installer_nLog_Logiciel | nLog
| bdsoutou
| logiciel
| nLog
|
| fk_Installer_nPoste_Poste | nPoste | bdsoutou
| poste
| nPoste
|
+----------------------------+--------+------------+------------+----------+
MySQL utilise :
q
REFERENCED_TABLE_SCHEMA qui indique la base de données hébergeant la table
« père ». Ici la base données contient les tables « fils » et « pères », mais il se peut que ces
tables soient dans deux bases distinctes.
q
REFERENCED_TABLE_NAME qui indique le nom de la table « père ».
q
REFERENCED_COLUMN_NAME qui indique le nom de la colonne référencée dans la table
« père ». Ici, les noms des colonnes des tables « fils » et « père » sont identiques, mais il se
peut qu’ils diffèrent.
Recherche du code source d’un sous-programme
La vue ROUTINES décrit la composition des sous-programmes (procédures, et fonctions cataloguées). La requête suivante permet d’extraire le code source des sous-programmes stockés
dans la base test.
SELECT
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'test';
+--------------+--------------+-----------------------------------------------+
| ROUTINE_NAME | ROUTINE_TYPE | ROUTINE_DEFINITION
|
+--------------+--------------+-----------------------------------------------+
| sp1
| PROCEDURE
| BEGIN
DECLARE v_brevet CHAR(6);
SET v_brevet := 'PROC';
END
|
| sp2
| FUNCTION
| BEGIN
DECLARE v_brevet CHAR(3);
SET v_brevet := 'FCT';
RETURN v_brevet ;
END
|
+--------------+--------------+-----------------------------------------------+
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME
ROUTINE_NAME,ROUTINE_TYPE,ROUTINE_DEFINITION
SQL de base
200
© Éditions Eyrolles
SELECT CONSTRAINT_NAME, COLUMN_NAME AS 'Cle',
AS 'Base cible',
AS 'Table pere',
AS 'Col pere'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'bdsoutou' AND TABLE_NAME='Installer'
AND REFERENCED_TABLE_SCHEMA IS NOT NULL;
+----------------------------+--------+------------+------------+----------+
| CONSTRAINT_NAME
| Cle
| Base cible | Table pere | Col pere |
+----------------------------+--------+------------+------------+----------+
| fk_Installer_nLog_Logiciel | nLog
| bdsoutou
| logiciel
| nLog
|
| fk_Installer_nPoste_Poste | nPoste | bdsoutou
| poste
| nPoste
|
+----------------------------+--------+------------+------------+----------+
MySQL utilise :
q
REFERENCED_TABLE_SCHEMA qui indique la base de données hébergeant la table
« père ». Ici la base données contient les tables « fils » et « pères », mais il se peut que ces
tables soient dans deux bases distinctes.
q
REFERENCED_TABLE_NAME qui indique le nom de la table « père ».
q
REFERENCED_COLUMN_NAME qui indique le nom de la colonne référencée dans la table
« père ». Ici, les noms des colonnes des tables « fils » et « père » sont identiques, mais il se
peut qu’ils diffèrent.
Recherche du code source d’un sous-programme
La vue ROUTINES décrit la composition des sous-programmes (procédures, et fonctions cataloguées). La requête suivante permet d’extraire le code source des sous-programmes stockés
dans la base test.
SELECT
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'test';
+--------------+--------------+-----------------------------------------------+
| ROUTINE_NAME | ROUTINE_TYPE | ROUTINE_DEFINITION
|
+--------------+--------------+-----------------------------------------------+
| sp1
| PROCEDURE
| BEGIN
DECLARE v_brevet CHAR(6);
SET v_brevet := 'PROC';
END
|
| sp2
| FUNCTION
| BEGIN
DECLARE v_brevet CHAR(3);
SET v_brevet := 'FCT';
RETURN v_brevet ;
END
|
+--------------+--------------+-----------------------------------------------+
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME
ROUTINE_NAME,ROUTINE_TYPE,ROUTINE_DEFINITION
