C'est possible? Puis-je le spécifier sur l'URL de connexion? Comment faire ça?
java
database
postgresql
jdbc
database-schema
marcosbeirigo
la source
la source
setSchema
méthode JDCB après avoir créé votre connexion. Fonctionne pour moi avec un pilote postgres récent.postgresql-9.4.1209.jdbc42.jar
travaillé avec une9.5
base de données et la?currentSchema=myschema
syntaxe.Depuis la version 9.4 , vous pouvez utiliser le
currentSchema
paramètre dans votre chaîne de connexion.Par exemple:
la source
Si cela est possible dans votre environnement, vous pouvez également définir le schéma par défaut de l'utilisateur sur le schéma souhaité:
la source
Je ne pense pas qu'il existe un moyen de spécifier le schéma dans la chaîne de connexion. Il semble que vous devez exécuter
une fois la connexion établie pour spécifier le schéma.
la source
Statement statement = connection.createStatement(); try { statement.execute("set search_path to '" + schema + "'"); } finally { statement.close(); }
J'ai soumis une version mise à jour d'un correctif au pilote JDBC PostgreSQL pour l'activer il y a quelques années. Vous devrez créer le pilote JDBC PostreSQL à partir de la source (après l'ajout du correctif) pour l'utiliser:
http://archives.postgresql.org/pgsql-jdbc/2008-07/msg00012.php
http://jdbc.postgresql.org/
la source
DataSource
-setCurrentSchema
Lors de l'instanciation d'une
DataSource
implémentation, recherchez une méthode pour définir le schéma actuel / par défaut.Par exemple, lors de l'
PGSimpleDataSource
appel de classesetCurrentSchema
.Si vous laissez le schéma non spécifié, Postgres utilise par défaut un schéma nommé
public
dans la base de données. Voir le manuel, section 5.9.2 Le schéma public . Pour citer le manuel du chapeau:la source
search_path
N'oubliez pas
SET SCHEMA 'myschema'
ce que vous pouvez utiliser dans une déclaration distincteEt depuis 9.4 et peut-être les versions antérieures sur le pilote JDBC, il existe un support pour la
setSchema(String schemaName)
méthode.la source
En Go avec "sql.DB" (notez le
search_path
avec trait de soulignement):la source
Cela a déjà été répondu:
jdbc: postgresql: // localhost: 5432 / ma base de données? currentSchema = myschema
Comme dans les réponses précédentes, la chaîne de connexion ci-dessus fonctionne simplement.
J'ai vérifié, et c'est OK: https://youtu.be/m0lBUHSLkNM?t=79
(Bien que la réponse acceptée ait été donnée il y a 8 ans, elle a été modifiée il y a 1 an...)
la source