# Sql Trigger



## Moritz1234 (5. Jul 2020)

Hallo, ich habe zwei Tabellen die heizten Person und Wohnort.
Ich möchte das in der Tabelle Wohnort im Attribut Ort ab sofort nur noch Großbuchstaben verwendet werden.
Wie kann ich dazu einen Trigger schreiben? Ich hab einiges versucht aber ich glaube ich bin einfach komplett daneben.. Danke falls jemand helfen kann!


----------



## kneitzel (5. Jul 2020)

Also das ist von Datenbank zu Datenbank erst einmal unterschiedlich, da diese in der Sprache unterschiedlich sind. Was für mysql geht, wird für MS SQL oder Oracle nicht hin hauen.

Aber da könnte man z.B. AFTER INSERT und AFTER UPDATE Trigger schreiben, die dann die notwendige Änderung machen. 

Also einfach einmal mehr Details schreiben:
- Was für eine Datenbank verwendest Du?
- Was hast Du probiert?
- Welchen Fehler hast Du bekommen?


----------



## Moritz1234 (5. Jul 2020)

JustNobody hat gesagt.:


> Also das ist von Datenbank zu Datenbank erst einmal unterschiedlich, da diese in der Sprache unterschiedlich sind. Was für mysql geht, wird für MS SQL oder Oracle nicht hin hauen.
> 
> Aber da könnte man z.B. AFTER INSERT und AFTER UPDATE Trigger schreiben, die dann die notwendige Änderung machen.
> 
> ...


Ich benutze SQLDeveloper (Oracel). Ehrlich gesagt bin ich mir nicht ganz sicher mit After und before. Ich habe irgendwie ein Spaghetti Code geschrieben den ich wieder gelöscht habe, da wahrscheinlich alles komplett falsch war. Ich bin sehr frisch in dem Bereich und wir bekommen sehr viel auf einmal zugestopft deshalb bin ich etwas am verzweifeln..


----------



## Moritz1234 (5. Jul 2020)

JustNobody hat gesagt.:


> Also das ist von Datenbank zu Datenbank erst einmal unterschiedlich, da diese in der Sprache unterschiedlich sind. Was für mysql geht, wird für MS SQL oder Oracle nicht hin hauen.
> 
> Aber da könnte man z.B. AFTER INSERT und AFTER UPDATE Trigger schreiben, die dann die notwendige Änderung machen.
> 
> ...


Und ich Sollte Row trigger am besten verwenden in diesem Fall oder? Damit jeder Datensatz angestoßen wird in der Spalte orte?


----------



## mihe7 (5. Jul 2020)

Sollte in etwa so aussehen:

```
CREATE OR REPLACE TRIGGER person_before_insert_update
    BEFORE INSERT OR UPDATE ON person
    FOR EACH ROW
BEGIN
    :new.ort := upper(:new.ort);
END;
```


----------



## Moritz1234 (5. Jul 2020)

mihe7 hat gesagt.:


> Sollte in etwa so aussehen:
> 
> ```
> CREATE OR REPLACE TRIGGER person_before_insert_update
> ...


Danke!!!


----------



## mihe7 (5. Jul 2020)

Bitte, probiers aber erstmal aus, ganz sicher bin ich mir nicht, denn mit Oracle hatte ich zuletzt vor 10+ Jahren zu tun. Könnte aber hinkommen


----------



## Moritz1234 (5. Jul 2020)

Es


mihe7 hat gesagt.:


> Bitte, probiers aber erstmal aus, ganz sicher bin ich mir nicht, denn mit Oracle hatte ich zuletzt vor 10+ Jahren zu tun. Könnte aber hinkommen


 es hat funktioniert danke


----------

