Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1412 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Mon ami postgres et ses dblinks

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon ami postgres et ses dblinks

n°997988
Moktar1er
No one replies...
Posté le 02-03-2005 à 10:53:07  profilanswer
 

Soit une base "base1" qui contient la table "base1table1" définie comme:
CREATE TABLE base1table (b1t1id serial CONSTRAINT b1t1id PRIMARY KEY, b1t1var integer);
 
Soit une base "base2" avec:
CREATE VIEW base1table1 AS SELECT * FROM dblink('dbname=base1','select * from base1table1') AS t1(b1t1id integer, b1t1var integer);
 
et:
CREATE RULE base1table1 AS ON INSERT TO base1table1 DO INSTEAD select dblink_exec(to_rule(NEW.b1t1var));
 
sachant:
CREATE FUNCTION to_rule(integer) RETURNS text AS 'SELECT \'insert into base1table1(b1t1var) values (\'||text($1)||\');\' AS result;' LANGUAGE SQL;
 
Voilà mon problème: si je me met sur "base2", que je fais un SELECT * FROM base1table1; pas de problèmes, je récupère toutes les données. Logique.
Or, si je fais un INSERT INTO base1table1(b1t1var) VALUES (12);, il me sort:
ERREUR:  sql error
DETAIL:  ERREUR:  NEW utilisé dans une requête dans une règle
 
Mais le pire, c'est que l'insert dans la table "base1table1" de la base "base1" marche quand même...
 
Une petite idée pour comprendre d'où vient l'erreur et ne plus avoir droit à cet hideux message?

mood
Publicité
Posté le 02-03-2005 à 10:53:07  profilanswer
 

n°998353
Moktar1er
No one replies...
Posté le 02-03-2005 à 15:11:16  profilanswer
 

Et c'est encore un topic sans réponses que notre ami vient d'ouvir, il bien parti je crois pour l'award du plus grands nombre de questions sans réponses...

n°1000389
Moktar1er
No one replies...
Posté le 04-03-2005 à 09:52:54  profilanswer
 

Bon, j'ai tout "droppé" et retapé, et manifestement ça marche sans erreur cette fois.
J'ai l'impression qu'un moment donné j'ai cumulé ma règle "DO INSTEAD" qui marche avec une "DO" (tout court) qui générait l'erreur, et du coup je ne récupérai que le message d'erreur, même si l'éxecution se faisait convenablement...
Merci pour votre aide à tous [:itm]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Mon ami postgres et ses dblinks

 

Sujets relatifs
Postgres Ou est la bd?lister des sequences de BDD postgres via JDBC
[postgres/Fonction] Probleme fonctionre-configure php linux pour postgres
Supp. de toutes les entrées de la tables système pg_shadow e Postgresbase de données postgres
conserver ses bases à la réinstallation de postgresmysql_insert_id(...) sous postgres.
[Postgres] schématiser l'héritage de tablePostGres - Gros problème d'user
Plus de sujets relatifs à : Mon ami postgres et ses dblinks


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR