Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 17 Ιούλ 2008 16:11

Γειά σας και καλώς σας βρήκα,

Επειδή είμαι noob στην Mysql αντιμετωπίζω ένα πρόβλημα. έχω τον παρακάτω κώδικα ο οποίος είναι για Oracle και θέλω να τον περάσω σε Mysql βάση.

Κώδικας: Επιλογή όλων

create table IMAGE1(IMAGEID int not null,
                                      DOC_ID int not null,
                                      TYPEBLOB varchar(2000),
                                      DESCR varchar(2000),
                                      FILENAME blob not null,
                         primary key(IMAGEID),
                         foreign key (DOC_ID) references DOCUMENT1(DOC_ID));


create sequence SEQ start with 1 increment by 1;

CREATE OR REPLACE TRIGGER "AUTO_ENCRE" BEFORE
INSERT ON IMAGE1 FOR EACH ROW begin
    if :new.IMAGEID is null then
      select SEQ.nextval into :new.IMAGEID from dual;
    end if;
  end;
Το πρόβλημα μου είναι η δημιουργία sequence και στη συνέχεια ο Trigger. Ψάχνοντας στο google βρήκα ότι το create sequence.... δεν ισχύει στην Mysql και έτσι έκανα την πρώτη στήλη του πίνακα που δημιουργώ IMAGEID int not null AUTO_INCREMENT
Το Trigger όμως πως θα το κάνω να δουλέψει?
Τελευταία επεξεργασία από το μέλος honda22 την 19 Ιούλ 2008 16:23, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27620
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από cordis » 17 Ιούλ 2008 16:18

τι έκδοση MySQL, γιατί δεν έχουν όλες triggers...
βασικά είναι για εκδόσεις 5.0 και πάνω, http://dev.mysql.com/doc/refman/5.1/en/ ... igger.html

edit: από την στιγμή που το έχεις κάνει auto_increment δε χρειάζεσαι trigger, η mysql δίνει μόνη της αριθμούς...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 17 Ιούλ 2008 16:25

Έχω την 5.0 .

Δηλάδή λες να μην χρειαστώ trigger. Τώρα που το ξαναβλέπω ίσως να είναι έτσι.

Και κάτι άλλο, θέλω να δημιουργήσω μια Procedure. Το υποστηρίζει η έκδοση μου? Ψάχνω στο Reference Manual αλλά δεν βρίσκω κάτι. Δηλαδή θέλω να δημιουργήσω αυτή την Procedure

Κώδικας: Επιλογή όλων


CREATE OR REPLACE  PROCEDURE INS_IMAGE (IMAGEID2 int, 
                                                                       DOC_ID2 INT,
                                                                       TYPEBLOB2 VARCHAR,
                                                                        DESCR2 VARCHAR,
                                                                        FILENAME2 varchar)
 AS

  v_bfile   FILE;
  v_blob   BLOB;
BEGIN

insert into IMAGE1(IMAGEID, DOC_ID, TYPEBLOB, DESCR, FILENAME) values  (IMAGEID2, DOC_ID2, TYPEBLOB2, DESCR2 , Empty_blob() )

  RETURN FILENAME INTO v_blob;

  v_bfile := BFILENAME('IMAGES', FILENAME2);
  Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
  Dbms_Lob.Loadfromfile(v_blob, v_bfile, Dbms_Lob.Getlength(v_bfile));
  Dbms_Lob.Fileclose(v_bfile);

  COMMIT; 
END INS_IMAGE;

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από alexandr0s » 17 Ιούλ 2008 18:10

O trigger που έχεις γράψει έχει 'look' Oracle. Πρέπει να τον ξαναγράψεις για MySQL

Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 17 Ιούλ 2008 19:39

alexandr0s έγραψε:O trigger που έχεις γράψει έχει 'look' Oracle. Πρέπει να τον ξαναγράψεις για MySQL
και αυτό

Κώδικας: Επιλογή όλων

select SEQ.nextval into :new.IMAGEID from dual; 
πως θα το γράψω?

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27620
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από cordis » 17 Ιούλ 2008 21:10

Όπως σου είπα δεν χρειάζεται να τον ξαναγράψεις, γιατί εκτός του ότι δεν υπάρχουν sequence στην MySQL κάνει το autonumbering αυτόματα.

Create procedure:
http://dev.mysql.com/doc/refman/5.0/en/ ... edure.html
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 18 Ιούλ 2008 19:50

cordis έγραψε:Όπως σου είπα δεν χρειάζεται να τον ξαναγράψεις, γιατί εκτός του ότι δεν υπάρχουν sequence στην MySQL κάνει το autonumbering αυτόματα.

Create procedure:
http://dev.mysql.com/doc/refman/5.0/en/ ... edure.html
Ευχαριστώ,

το πρόβλημα τώρα είναι η procedure για τις εικόνες, προσπαθώ να την μετατρέψω σε mysql αλλά δεν.
Βασικά πρέπει να βρω τις αντίστοιχες εντολές για αυτά:

Κώδικας: Επιλογή όλων

Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly); 

Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 19 Ιούλ 2008 16:25

Έχει κανένας καμιά ιδέα για την παραπάνω procedure? Θέλω να αποθηκεύω εικόνες στη βάση.

Κομμάτι της πτυχιακής μου εργασίας είναι.

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27620
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από cordis » 25 Ιούλ 2008 23:25

και γιατί δεν το κάνεις στην γλώσσα προγραμματισμού που θα έχεις και να δώσεις μασημένη τροφή στην mySql; που δε νομίζω ότι έχει file system εντολές...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από Alice_Cooper » 26 Ιούλ 2008 01:35

ginete na stileis kai file mesa se pedio alla vareni poly thn db ....
look edo http://www.devarticles.com/c/a/MySQL/MySQL-and-BLOBs/

Άβαταρ μέλους
honda22
Δημοσιεύσεις: 22
Εγγραφή: 17 Ιούλ 2008 16:02

Πρόβλημα με Trigger και Sequence|Solved. Procedure?

Δημοσίευση από honda22 » 26 Ιούλ 2008 22:04

Alice_Cooper έγραψε:ginete na stileis kai file mesa se pedio alla vareni poly thn db ....
look edo http://www.devarticles.com/c/a/MySQL/MySQL-and-BLOBs/
Αυτό έκανα και βλέπουμε.

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες