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

oracle 10g


mihalis19

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

Δημοσ.

Να σου πω..θυμήθηκα και το άλλο που ειχα ζητήσει το πως θα φτιάξω autonumber μου είχες πει στην πρώτη σελίδα αλλά δεν ξέρω που θα τα βρω αυτα..μπορείς να μου πεις λίγο περισσότερα πράγματα?

 

H Oracle έχει το λεγόμενο sequence . Δεν δηλώνεται πάνω στο πεδίο αλλά αποτελεί ξεχωριστό object στο σχήμα. Επομένως δημιουργείς το sequence με την αντίστοιχη εντολή. Για το πως θα το δημιουργήσεις δες εδώ.

 

Ας πούμε ότι δημιουργήσες το sequence "mysequence" . Τότε απλά στο insert statement γράφεις ως εξής

 

>insert into mytable(field1_auto,field2,field3)
values(mysequence.nextval,10,10);

 

Με το mysequence.nextval του λες να σου δώσει την επόμενη τιμή. Me το mysequence.currval σου δίνει την ίδια τιμή. Αυτό μπορεί να χρειαστεί σε περίπτωση που θέλεις να καταχωρήσεις σε δύο πίνακες.

 

O trigger που αναφέρθηκε νωρίτερα απο κάποιο φίλο χρειάζεται ώστε να μην περιλαμβανεις το autonumber πεδίο σου στα insert αλλά να αναλαμβάνει ο ίδιος να συμπληρώσει το πεδίο κατάλληλα.

 

Αυτό γίνεται δημιουργώντας εναν dml trigger before insert for each row και χρησιμοποιώντας το sequence ώστε να θέτεις την νέα τιμή

 

Για παράδειγμα

 

>CREATE OR REPLACE TRIGGER mytrigger
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN

SELECT mysequence.NEXTVAL
   INTO   :new.field1_auto
   FROM   dual;

END; 

 

και το insert πλεον διαμορφώνεται ως εξής

 

>insert into mytable(field2,field3)
values(10,10);

Δημοσ.

Aztec σε ευχαριστώ που μπήκες στον κόπο αλλά είναι πολύ περίπλοκο για εμένα. Το μόνο που ξέρω να κάνω είναι απλά να λειτουργώ εν μέρη την oracle 10g που έχω εγκαταστήσει αλλά χωρίς να μπορώ να γράψω εντολές δικέ ςμου κτλ πρώτον γιατί δεν ξέρω που να τις γράψω.. Θα προσπαθήσω να το παρακάμψω λίγο το θέμα του autonumber. Έχω κολλήσει στο πως θα δηλώσω τα κλειδιά μου.. Συγκεκριμένα έχω τα εξής στοιχεία.

 

πινακας 1: φοιτητες με πεδία: κωδ.φοιτητη , επώνυμο , όνομα , διέυθυνση

 

 

πινακας 2: μαθηματα με πεδία: κωδ.μαθήματος , τίτλος , σημειώσεις

 

 

πινακας 3: εξετασεις με πεδία: κωδ.φοιτητη , κωδ.μαθηματος , ημερομηνία , βαθμός

 

 

Όρισα κλειδιά στον πίνακα 1 τον κωδ.φοιτητή

--||-- 2 τον κωδ.μαθήματος

--||-- 3 τι να δηλώσω??? Στην αρχή δήλωσα τον κωδ.φοιτητή , τον κωδ.μαθήματος αλλά δεν ξέρω πως να ορίσω σωστά τα κλειδιά..Αν γίνεται πείτε μου να το κάνω χωρίς κώδικα με τις διαδικασίες (κουμπιά) που έχει η oracle 10g express

 

Δεν ξέρω τι να βάλω στις επιλογές στις καρτέλες primary key και foreign key

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...