phpbar.de logo

Mailinglisten-Archive

[php] Oracle Sequence

[php] Oracle Sequence

Florian Clever clever_(at)_aracnet.com
Mon, 21 Feb 2000 12:22:48 +0100


>3. wie kann ich mysql_insert_id auf oracle anwenden, wenn ich dort zum
>emulieren des auto_increment eine sequence verwende ?

Man muß eine Sequence verwenden:
CREATE SEQUENCE "WWW".Seq1
 START WITH 1
 INCREMENT BY 1
 NOMAXVALUE
 NOCYCLE;

PS: Solche Sequencen sind jedoch besser als auto_increment. Denn man kann
eine Sequence auch für zwei Tabellen verwenden, also wenn zwei Tabeleen z.B.
quasi einein Unique-Constraint haben wie z.B. PK.

Ich weiß nicht wie mysql_insert_id funktioniert, aber folgendes funktioniert
in Oracle:
INSERT INTO tab (pk_field, field2) VALUES (Seq1.NEXTVAL,'value2');

oder in einer PL/SQL function:
CREATE FUNCTION "WWW".AddNewPatient RETURN NUMBER IS lf_sysid NUMBER(18,0);
BEGIN
 SELECT PatientsSysidSeq.NEXTVAL INTO lf_sysid FROM dual;
 INSERT INTO patients (sysid) VALUES (lf_sysid);
 COMMIT;
 RETURN(lf_sysid);
END AddNewPatient;
/

Florian Clever

****************************************************************************
Clever Software Solutions
Phone:  ++49 (0)761 7070268 / Fax: ++49 (0)761 23565
Email: clever_(at)_aracnet.com / Internet: http://www.aracnet.com/~clever
Zasiusstr. 45 / D-79102 Freiburg / Germany
****************************************************************************



php::bar PHP Wiki   -   Listenarchive