Hallo Forum,
ich habe eine Haupttabelle und dazu zwei verschiedene Views, nun möchte ich das diejenigen die die Views sehen diese Daten auch verändert werden können, wie kann ich das bewerkstelligen?
mfg
ballibum
Du kannst passende RULEs auf den VIEW legen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Dem ads merkt man an, daß er Urlaub und damit wichtigeres zu tun hat als mal ein kurzes Beispiel zu liefern, also bleibt das mal wieder bei mir hängen...
AndreasCode:test=# create table demo (i int); CREATE TABLE Zeit: 182,168 ms test=*# create view view_demo as select * from demo; CREATE VIEW Zeit: 7,290 ms test=*# create rule demo_rule as on update to view_demo do instead update demo set i = new.i; CREATE RULE Zeit: 0,550 ms test=*# select * from demo; i --- (0 Zeilen) Zeit: 0,836 ms test=*# insert into demo (i) values (10); INSERT 0 1 Zeit: 0,283 ms test=*# select * from view_demo; i ---- 10 (1 Zeile) Zeit: 0,258 ms test=*# update view_demo set i = 20 where i=10; UPDATE 1 Zeit: 0,453 ms test=*# select * from demo; i ---- 20 (1 Zeile) Zeit: 0,268 ms
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
vielen dank für die information, leider scheint das noch nicht zu klappen, ich habe einen view mit 3 Spalten, für die ich jeweils eine rule erzeugt habe. nun greife ich auf diesen view mit einem programm (quantum gis) zu, beim abspeichern kommt folgende fehlermeldung:
ERROR: cannot insert into a view
TIP: You need an unconditional ON INSERT DO INSTEAD rule.
kann mir dazu jemand etwas sagen?oder noch einen tip geben?
hier der sql code den ich benutzt habe:
die urrsprüngliche tabelle hat natürlich deutlich mehr spalten, diese sollen jedoch leer bleiben.Code:view: CREATE VIEW demo3 AS SELECT nutzungrfh.gid, nutzungrfh.the_geom, nutzungrfh.objectid FROM nutzungrfh; ALTER TABLE demo3 OWNER TO postgres; und für die regeln: create rule demo1 as on update to demo do instead update nutzungrfh set gid = new.gid; create rule demo2 as on update to demo do instead update nutzungrfh set objectid = new.objectid; create rule demo3_rule as on update to demo do instead update nutzungrfh set the_geom = new.the_geom;
vielen dank für eure hilfe
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Oh Mann, entschuldigung das ich euch mit solchen Fehlern behelligt habe, dennoch vielen Dank für deine/eure Hilfe.
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen