PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 04/01/2018 17:14:13

Insert / update / delete

Bonjour,
Est-il possible de faire des insert / update / delete sur une vue matérialisée étant entendu qu'on pourrait le faire avec une vue ordinaire ayant le même select ?
On en parle sans doute dans la documentation mais je n'ai pas trouvé où.

Merci pour votre attention

Hors ligne

#2 04/01/2018 17:24:28

rjuju
Administrateur

Re : Insert / update / delete

https://www.postgresql.org/docs/current … views.html :


the materialized view cannot subsequently be directly updated

Hors ligne

#3 04/01/2018 18:46:35

Re : Insert / update / delete

Merci mais je ne vois pas si je peux faire

CREATE MATERIALIZED VIEW mymatview ...

INSERT INTO mymatview...

DELETE FROM mymatview...

UPDATE mymatview...


Encore merci et bonne soirée

Hors ligne

#4 04/01/2018 19:44:20

gleu
Administrateur

Re : Insert / update / delete

Le plus simple est de tester, non ?

postgres=# create table t1(c1 integer, c2 text);
CREATE TABLE
postgres=# insert into t1 values (1, 'un');
INSERT 0 1
postgres=# create materialized view mv1 as select * from t1;
SELECT 1
postgres=# select * from mv1;
 c1 | c2 
----+----
  1 | un
(1 row)

postgres=# insert into mv1 values (2, 'deux');
ERROR:  cannot change materialized view "mv1"
postgres=# update mv1 set c2='deux' where c1=1;
ERROR:  cannot change materialized view "mv1"
postgres=# delete from mv1 where c1=1;
ERROR:  cannot change materialized view "mv1"

Donc non, ce n'est pas possible smile


Guillaume.

Hors ligne

#5 05/01/2018 11:24:43

Re : Insert / update / delete

Merci ! Et bon week-end à vous et à Dalibo

Hors ligne

Pied de page des forums