Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Προσπαθώ να φτιάξω ένα trigger στο postgres και μου βγάζει error στο referencing...Καμία ιδέα?

Ευχαριστώ

 create trigger sailor1
 after insert on sailor
 referencing new as N
 for each row mode db2sql
 update sailor set age_updated = current timestamp
 where sid = N.sid;
Δημοσ.

Μπα δε νομίζω, γενικά ο κώδικας είναι σωστός εγω σκέφτομαι μήπως χρειάζεται κάποια τροποποίηση μιας και δουλεύω σε postgres

  • Moderators
Δημοσ.

Πάντως το παράδειγμα που δίνει στο site της PostgreSQL είναι CREATE TRIGGER ... ON tablename REFERENCING OLD ROW AS somename NEW ROW AS othername ...
Ξέρω ότι διαφορετικές εκδόσεις SQL μπορεί να έχουν λίγο διαφορετικό συντακτικό, γι' αυτό είπα μήπως...

Δημοσ.
create function sailor1_function() returns trigger as $sailor1_function$
begin
update sailor set age_updated = current_timestamp where sid = new.sid;
return new;
end
$sailor1_function$ language plpsql;

create trigger sailor1
after insert on sailor
for each row execute procedure sailor1_function();

αυτό σου παίζει?

Δημοσ.

Τελευταία φορά που κοίταξα το referencing δεν παίζει σε postgres. Επίσης μην κανεις update τον ίδιο πίνακα που είναι ο trigger. Χρησιμοποίησε τα new , old για να βαλεις τις τιμές που θελεις.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...