Ergebnis 1 bis 6 von 6

Thema: Update einer Tabelle mittels View

  1. #1
    ballibum ist offline Benutzer
    Registriert seit
    27.04.2009
    Beiträge
    30

    Standard Update einer Tabelle mittels View

    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

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    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

  3. #3
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Du kannst passende RULEs auf den VIEW legen.
    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...

    Code:
    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
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #4
    ballibum ist offline Benutzer
    Registriert seit
    27.04.2009
    Beiträge
    30

    Standard

    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:
    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;
    die urrsprüngliche tabelle hat natürlich deutlich mehr spalten, diese sollen jedoch leer bleiben.
    vielen dank für eure hilfe

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von ballibum Beitrag anzeigen
    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?
    Natürlich. Du brauchst eine Rule für INSERT. Steht übrigens auch als TIP in der Fehlermeldung.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    ballibum ist offline Benutzer
    Registriert seit
    27.04.2009
    Beiträge
    30

    Standard

    Oh Mann, entschuldigung das ich euch mit solchen Fehlern behelligt habe, dennoch vielen Dank für deine/eure Hilfe.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum