J'ai une table appelée testeur em> que j'ai besoin de superposer avec une table temporaire afin de faire des tests. Jusqu'à présent, j'ai réussi à utiliser: SELECT * FROM pg_catalog.pg_class WHERE relkind = 'r' AND relname = 'tester';
result when temporary table exists:
relname | relnamespace | reltype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | reltoastrelid | reltoastidxid | relhasindex | relisshared | relkind | relnatts | relchecks | reltriggers | relukeys | relfkeys | relrefs | relhasoids | relhaspkey | relhasrules | relhassubclass | relfrozenxid | relacl | reloptions
---------+--------------+---------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+---------+----------+-----------+-------------+----------+----------+---------+------------+------------+-------------+----------------+--------------+--------+------------
tester | 2200 | 1533065 | 1531747 | 0 | 1533063 | 0 | 0 | 0 | 1533067 | 0 | t | f | r | 3 | 0 | 0 | 0 | 0 | 0 | f | t | f | f | 17654031 | |
tester | 1533088 | 1533065 | 1531747 | 0 | 1533160 | 0 | 0 | 0 | 1533163 | 0 | f | f | r | 3 | 0 | 0 | 0 | 0 | 0 | f | f | f | f | 17654066 | |
4 Réponses :
fonction définie par l'utilisateur pour vérifier si la table TEMP existe.
Cela fonctionne pour moi, merci! Y a-t-il un moyen de glisser la fonction entraîner une requête SQL comme un conditionnel (afin que je puisse éviter de faire une requête supplémentaire dans mon code Java)? À ma connaissance, il n'y a pas - mais je serais intéressé à savoir s'il y avait un moyen.
Essayez SELECT * de My_Table où IFTABLEEXIST (MY_TABLE) Vous pouvez également utiliser un cas
Ce que je voudrais faire, c'est seulement créer la table temporaire si elle n'existe pas déjà. P>
xxx pré> blockQuote>
NOTE "SI N'EST PAS EST INSIST" a été introduit dans PostgreSQL 9.6.
Cela fonctionne pour moi:
SELECT EXISTS (
SELECT 1
FROM information_schema.tables
WHERE table_schema like 'pg_temp_%'
AND table_name=LOWER('table_name')
)
Je ne comprends pas pourquoi vous voudriez "recherche floue" avec Voici le même code que ci-dessus, mais en utilisant comme code> quand il y a une colonne avec les informations dont nous avons besoin. Peut-être qu'il y a des préoccupations de compatibilité à l'envers que je ne suis pas au courant de. table_type = 'local temporaire code> au lieu de comme' pg_temp_% ' code> p>