PDA

View Full Version : Benutzer in SQL



Eric
29-01-10, 20:27
Hallo,

update wrktest1/plz_001 set (F2, F3, F6) =
(select F2, F3, F6 from
wrktest/plz_998 where plz_001.F1 = plz_998.F1)
where plz_001.F1 in(select plz_998.F1 from wrktest/plz_998)
and F2 = 'BERLIN'
and plzben = 'TEST'

update wrktest1/plz_001 set (F2, F3, F6) =
(select F2, F3, F6 from
wrktest/plz_998 where plz_001.F1 = plz_998.F1)
where plz_001.F1 in(select plz_998.F1 from wrktest/plz_998)
and F2 = 'BERLIN'
and plzben = user


damit wird nur ein Update für den Benutzer TEST bzw.den erstellenden Benutzer
möglich,nun möchte ich aber

update wrktest1/plz_001 set (F2, F3, F6, plzben) =
(select F2, F3, F6 from
wrktest/plz_998 where plz_001.F1 = plz_998.F1)
where plz_001.F1 in(select plz_998.F1 from wrktest/plz_998)
and F2 = 'BERLIN'

im Feld plzben soll der aktuelle Benutzer einfügt werden nur wie ?

vielen Dank im voraus für Eure Hilfe
Eric

Fuerchau
29-01-10, 21:38
Da gibt's das SQL-Register

CURRENT USER
bzw.
CURRENT_USER
oder einfach
USER

Also

update wrktest1/plz_001 set (F2, F3, F6, plzben) =
(select F2, F3, F6, USER from
wrktest/plz_998 where plz_001.F1 = plz_998.F1)
where plz_001.F1 in(select plz_998.F1 from wrktest/plz_998)
and F2 = 'BERLIN'

Eric
31-01-10, 10:51
Vielen Dank,

eigentlich ganz einfach, wenn man die Lösung kennt oder bekommt !

hab das noch um das Datum erweitert :

update wrktest1/plz_001 set (F2, F3, F6, plzben, pltdat) =
(select F2, F3, F6, USER, CURRENT_DATE from
wrktest/plz_998 where plz_001.F1 = plz_998.F1)
where plz_001.F1 in(select plz_998.F1 from wrktest/plz_998)
and F2 = 'BERLIN'

Danke ERIC
:)

Fuerchau
31-01-10, 17:26
Gilt auch für CURRENT TIME, CURRENT TIMESTAMP und ab V5R3 auch "now()" (entspricht Timestamp).

B.Hauser
01-02-10, 05:43
Gilt auch für CURRENT TIME, CURRENT TIMESTAMP und ab V5R3 auch "now()" (entspricht Timestamp).

Allerdings ... laut SQL Reference:
The special registers should be used for maximal portability.

Birgitta

Fuerchau
01-02-10, 10:31
Ja und ?
Bei den vielen SQL-Dialekten ist Portabilität fast unmöglich.
Jedes SQL-Script, dass ich zwischen DB2 und Oracle austausche muss manuell angepasst werden.

Beim Create Table unterscheidet sich schon der Variablentyp
varchar2 < = > graphic(nn) ccsid 1200
Die Reihenfolge DEFAULT und NOT NULL ist auch anders, usw. usw.

Portabilität gut und schön (zu wem und warum), aber ich brech mir dann die Finger.