Ergebnis 1 bis 5 von 5

Thema: Insert mit Überprüfung aus einer anderen Tabelle

  1. #1
    gloop ist offline Neuer Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    3

    Standard Insert mit Überprüfung aus einer anderen Tabelle

    Hallo Forumleser,

    ich habe 2 Tabellen:

    Tbl1
    id, name, status (bool)

    Tbl2
    id, name

    Nun möchte ich eine Abfrage machen, die folgendes macht:

    Überprüfe, ob in Tbl1, Feld status, eine 1 steht, falls ja, dann führe ein insert aus in Tbl2.

    Ausprobiert hab ich:

    SELECT
    CASE WHEN t.status = 1 THEN
    --'d'
    INSERT INTO Tbl2 (id, name) VALUES (nextval('__Tbl2'), 'test')

    END
    FROM Tbl1 as t
    WHERE t.status = 1;
    Mit der auskommentieren 'd' Zeile funktioniert es, aber mit dem Insert klappt es nicht. Gibt es eine Möglichkeit wie ich dies realisieren kann?

    Version: PostgreSQL 8.4

    Danke für eure Hilfe
    gloop

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von gloop Beitrag anzeigen
    Hallo Forumleser,

    ich habe 2 Tabellen:

    Tbl1
    id, name, status (bool)

    Tbl2
    id, name

    Nun möchte ich eine Abfrage machen, die folgendes macht:

    Überprüfe, ob in Tbl1, Feld status, eine 1 steht, falls ja, dann führe ein insert aus in Tbl2.

    Ausprobiert hab ich:


    Mit der auskommentieren 'd' Zeile funktioniert es, aber mit dem Insert klappt es nicht. Gibt es eine Möglichkeit wie ich dies realisieren kann?

    Version: PostgreSQL 8.4

    Danke für eure Hilfe
    gloop
    Vermutlich willst Du doch auch noch prüfen, ob für den Namen der Status true ist, oder?

    Also (untested):

    insert into tbl2 (id, name) select nextval('name der sequence'), name from tbl1 where status is true;


    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

  3. #3
    gloop ist offline Neuer Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    3

    Standard

    Also der derzeitige Code schaut nun so aus:

    INSERT INTO t_inventorystock (id, fk_item, stock_type, creationdate)
    VALUES (nextval('__t_inventorystock'), '3', 'ITEM', '2010-04-29')
    SELECT (t_itemtype as t
    WHERE t.id = '2' AND t.has_item_stock = 1 AND t.status = 1);
    Möchte also aus Tbl1 nur 1 wert überprüfen, ob er true ist.

    In diesem Fall bringt er mir ein Fehler bei dem SELECT!

    gloop

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von gloop Beitrag anzeigen
    Also der derzeitige Code schaut nun so aus:



    Möchte also aus Tbl1 nur 1 wert überprüfen, ob er true ist.

    In diesem Fall bringt er mir ein Fehler bei dem SELECT!

    gloop
    tbl1 kann doch sicher mehrere Records enthalten, und daher sowohl TRUE als auch FALSE in der BOOL-Spalte, oder? Welchen Wert willst Du nun als Bedingung nutzen?


    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

  5. #5
    gloop ist offline Neuer Benutzer
    Registriert seit
    03.05.2010
    Beiträge
    3

    Standard

    INSERT INTO t_inventorystock (id, fk_item, stock_type, creationdate)
    SELECT nextval('__t_inventorystock'), '28', 'ITEM', '2010-04-29'
    FROM t_itemtype as t WHERE t.id = '2' AND t.has_item_stock = 1 AND t.status = 1
    So klappt es

    Danke dir!

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 01.03.2011, 12:05
  2. Antworten: 1
    Letzter Beitrag: 19.06.2009, 07:06
  3. Antworten: 4
    Letzter Beitrag: 21.11.2007, 19:57
  4. Antworten: 2
    Letzter Beitrag: 19.09.2007, 16:57
  5. Antworten: 3
    Letzter Beitrag: 29.03.2006, 16:18

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