J'ai une grosse base de données (dans PostgreSQL 8.4) que j'essaie d'analyser en plus petites parties. Pour ce faire, je copie des parties du contenu de la grosse base de données vers d'autres schémas (je sais que c'est en quelque sorte contre la philosophie des bases de données de copier des données, mais sans cette étape l'analyse est trop lente).automatiser la création de schéma dans PostgreSQL (peut-être plpgsql?)
Il y a un certain nombre de commandes SQL que j'ai besoin d'exécuter, pour obtenir un nouveau schéma avec toutes les tables nécessaires à l'intérieur. Cependant, la différence entre la création d'un schéma et la création d'un autre schéma est très faible (en principe, c'est juste le nom du schéma et une valeur différente dans une clause "WHERE").
Ma question est la suivante:
Est-il possible d'écrire une fonction qui prend une certaine valeur en tant que paramètre et utilise ce paramètre dans la clause where (et comme le nom du schéma?) Si elle est possible, quelle langue de programme suggéreriez-vous (peut-être plpgsql), et à quoi ressemblerait un tel script (juste comme un squelette)?
Merci d'avance!
merci! la dynamique sql-partie de votre réponse semble être ce que je cherche! Cela fonctionnerait-il également avec '... BEGIN EXECUTE 'CREATE SCHEMA' || schemaname; ... 'ou' ... BEGIN EXECUTE 'CREATE TABLE' || nom de la table; ... '? – speendo
Oui, avec un tweak. Changez la définition en do_stuff (texte), et assurez-vous d'utiliser quote_ident() le cas échéant. –