
La FAQ de PostgreSQLConsultez toutes les FAQ
Nombre d'auteurs : 7, nombre de questions : 51, dernière mise à jour : 8 juillet 2009
Sommaire→Syntaxe SQL et structure de données→Structure du système- Comment lister toutes les tables de ma base ?
- Comment lister les tables présentes dans un schéma donné ?
- Comment savoir si une fonction existe dans postgresql ?
- Qu'est-ce qu'un index R-tree ?
- Comment changer le type d'un champ ?
- Comment puis-je connaître la version de PostgreSQL ?
- Comment supprimer ma base de données ?
SELECT tablename FROM pg_tables WHERE tablename !~ '^pg_';
ou
SELECT relname FROM pg_class WHERE relname !~ '^pg_';
Dans l'outil psql, on utilise la commande \dt
SELECT tablename FROM pg_tables WHERE schemaname = 'monschema';
ou
SELECT c.relname FROM pg_class c INNER JOIN pg_namespace n ON (c.relnamespace = n.oid) WHERE n.nspname = 'monschema'::text AND c.relkind = 'r'::text;
En regardant la table systeme pg_proc :
SELECT * FROM pg_proc;
On pauffine un peu, comme par exemple :
SELECT COUNT(*)>0 AS present FROM pg_proc WHERE proname='lafonctionquejerecherche'::text;
Cette requete retourne un booleen sur l'existence de la fonction.
Un index R-tree est utilisé pour l'indexation des données spatiales.
Un index de hachage ne permet pas les recherches par plage.
Un index B-tree peut seulement faire des recherches sur une dimension.
Les index R-tree peuvent traiter des données multi-dimensionnelles.
Par exemple, si un index R-tree peut être construit sur un attribut de type point, le système peut plus efficacement gérer les requêtes du type "Sélection de tous les points d'un rectangle".
L'article de référence qui décrit le système R-tree original est :
Guttman, A. "R-trees: A Dynamic Index Structure for Spatial Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.
Vous pouvez également trouver ce papier dans le livre de Stonebraker "Readings in Database Systems".
Les index R-tree intégrés peuvent prendre en charge les polygônes et les boîtes.
En théorie, les R-trees peuvent être étendus à un plus grand nombre de dimensions.
En pratique, l'extension des R-trees requiert pas mal de travail et nous n'avons pour le moment aucune documentation sur la façon de procéder.
Pour changer le type de données d'une colonne, d'une version antérieur à 7.3 :
BEGIN;
ALTER TABLE table ADD COLUMN nouvelle_colonne nouveau_type_de_donnees;
UPDATE table SET nouvelle_colonne = CAST(ancienne_colonne AS nouveau_type_de_donnees);
ALTER TABLE table DROP COLUMN ancienne_colonne;
COMMIT
;
Pour les version supérieur ou égale à 7.3 :
ALTER TABLE table ALTER la_colonne TYPE nouveau_type_de_donnees;
Après on peut faire un VACUUM FULL table pour récupérer l'espace disque utilisé par les lignes expirées.
Avec une requête SQL :
SELECT version();
DROP DATABASE mabase;
Si ce message d'erreur apparait:
Erreur SQL :
ERROR: cannot drop the currently open database
In statement:
DROP DATABASE "mabase"
La base est actuellement utilisée,
il faut déconnecter tous les utilisateurs et se connecter sur la base template1.
Après on peut dropper la base.



