[POSTGRESQL] Table non défini

Table non défini [POSTGRESQL] - SQL/NoSQL - Programmation

Marsh Posté le 02-02-2014 à 02:58:05    

Bonsoir,
 
Je viens d'installer PostgreSql et PhpPgAdmin cependant lorsque je créer un nouveau schéma puis une table  j'ai l'erreur suivant :  
 

Code :
  1. Erreur : SQLSTATE[42P01]: Undefined table: 7 ERREUR: la relation « maTable » n'existe pas LINE 1: SELECT * FROM maTable ^


 
Mais si je créer une table dans le schéma "public" cela fonctionne, j'ai donc pensé à un problème de droits mais même en modifiant cela ( GRANT ) j'ai toujours la même erreur, une idée ?
 
Merci de votre aide.
 
Bonne soirée.

Reply

Marsh Posté le 02-02-2014 à 02:58:05   

Reply

Marsh Posté le 02-02-2014 à 09:44:53    

:hello: !

 

Il me semble que lorsque tu effectues une requête, si tu veux interroger une table qui n'est pas dans le schéma par défaut, tu dois l'indiquer dans ta requête :

 
Code :
  1. SELECT * FROM schéma.maTable;
 

Après, si tu veux te passer d'indiquer le schéma à chaque fois, si cela fonctionne comme pour Oracle, tu dois prendre un utilisateur spécifique aura accès au schéma voulu.
À voir si c'est possible :??:

 

:jap:


Message édité par Soileh le 02-02-2014 à 09:45:27

---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 02-02-2014 à 13:09:41    

Bonjour,
 
Merci pour ta réponse Soileh, je viens d'essayer et cela fonctionne, cependant je n'ai pas bien compris la solution pour me passé d'indiquer les schémas.
 
Edit : Peux-tu m’expliquai à quoi sert de regrouper plusieurs tables dans un même schémas ?


Message édité par bill g@te le 02-02-2014 à 13:14:29
Reply

Marsh Posté le 02-02-2014 à 14:12:41    

Déjà, voici la définition d'un schéma :

Citation :


Un schéma est un ensemble d'objets, qui sont les structures logiques renvoyant directement aux données de la base. Ces structures peuvent être des tables, des vues, des séquences, des procédures stockées, des synonymes, des index, des clusters et des liens de base de données. A chaque utilisateur de la base de données est associé un schéma de même nom. Par défaut, chaque utilisateur crée tous les objets dans le schéma correspondant et peut y accéder.  


  • Un schéma est donc un regroupement d'objets comme les tables,...
  • Si tu crées un nouvel utilisateur, un nouveau schéma sera automatiquement créé, qui sera associé à celui-ci : si tu te connectes avec lui, tu accèderas directement à ses objets.


Après, je ne connais pas bien PostgreSQL [:cupra] Je ne sais pas si c'est le même fonctionnement qu'Oracle :/


---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 03-02-2014 à 01:12:46    

Merci je vais essayé de chercher encore .... ;)

Reply

Marsh Posté le 05-02-2014 à 10:46:47    

Je viens de faire quelques tests, et le fonctionnement a l'air d'être légèrement différent :

  • Tu dois créer un nouveau rôle, qui peut représenter entre autres :
Code :
  1. CREATE ROLE nom_utilisateur LOGIN PASSWORD 'ton_mot_de_passe' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;


  • Dans ta base de données, tu crées un nouveau schéma portant le même nom que l'utilisateur :
Code :
  1. CREATE SCHEMA nom_utilisateur AUTHORIZATION nom_utilisateur;


  • Tu attribues tous les droits sur ce nouveau schéma à ton utilisateur :
Code :
  1. GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA nom_utilisateur TO nom_utilisateur
 

:jap:


Message édité par Soileh le 05-02-2014 à 10:47:02

---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 09-02-2014 à 16:48:22    

Merci à toi Soileh, c'est impeccable ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed