nikomania-- Δημοσ. 12 Ιανουαρίου 2014 Δημοσ. 12 Ιανουαρίου 2014 Προσπαθώ να φτιάξω ένα 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;
Moderators Kercyn Δημοσ. 12 Ιανουαρίου 2014 Moderators Δημοσ. 12 Ιανουαρίου 2014 Μήπως θέλει new row και όχι μόνο new;
nikomania-- Δημοσ. 12 Ιανουαρίου 2014 Μέλος Δημοσ. 12 Ιανουαρίου 2014 Μπα δε νομίζω, γενικά ο κώδικας είναι σωστός εγω σκέφτομαι μήπως χρειάζεται κάποια τροποποίηση μιας και δουλεύω σε postgres
Moderators Kercyn Δημοσ. 12 Ιανουαρίου 2014 Moderators Δημοσ. 12 Ιανουαρίου 2014 Πάντως το παράδειγμα που δίνει στο site της PostgreSQL είναι CREATE TRIGGER ... ON tablename REFERENCING OLD ROW AS somename NEW ROW AS othername ...Ξέρω ότι διαφορετικές εκδόσεις SQL μπορεί να έχουν λίγο διαφορετικό συντακτικό, γι' αυτό είπα μήπως...
warlock9_0 Δημοσ. 12 Ιανουαρίου 2014 Δημοσ. 12 Ιανουαρίου 2014 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(); αυτό σου παίζει?
Aztec Δημοσ. 13 Ιανουαρίου 2014 Δημοσ. 13 Ιανουαρίου 2014 Τελευταία φορά που κοίταξα το referencing δεν παίζει σε postgres. Επίσης μην κανεις update τον ίδιο πίνακα που είναι ο trigger. Χρησιμοποίησε τα new , old για να βαλεις τις τιμές που θελεις.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα