Mikijs Posted March 17, 2008 Report Share Posted March 17, 2008 Jautajums ir sekojosh.. isti neizprotu ka orclee darboties ar datubazem.. guuglee mekleju bet neatradu sapratigu risinajumu.. vieni sakaa tiesi ta pat kas ar mysql vieni saka ka kaa pgsql :/ vai shadi butu pareizi? create sequence tblSpamList_seq start 1; CREATE TABLE tblSpamList ( item_id int4 default nextval('tblSpamList_seq') unique NOT NULL, user_id int4 not null, email character varying(50), spam_date date, PRIMARY KEY (item_id) ); Link to comment Share on other sites More sharing options...
Kavacky Posted March 17, 2008 Report Share Posted March 17, 2008 Tev nevajag Oracle. Link to comment Share on other sites More sharing options...
Gints Plivna Posted March 17, 2008 Report Share Posted March 17, 2008 (edited) Jautājums numur 1 ko vajag izdarīt? Jautājums numur 2 kāpēc Oracle un ar kādu mērķi Oracle? bet nu vispār tas ir tā - sekvences izveidošana (defaultā jau sākas no 1 tā kā to var nerakstīt) SQL> create sequence tblSpamList_seq; Sequence created. Tabulas izveide lietojot tipus ko Oracle atzīst (integer jau nu anyway parveidos uz number). Sekvence arī nevar būt kādas kolonas noklusētā vērtība. SQL> ed Wrote file afiedt.buf 1 CREATE TABLE tblSpamList ( 2 item_id integer NOT NULL, 3 user_id integer not null, 4 email varchar2(50), 5 spam_date date, 6 PRIMARY KEY (item_id) 7* ) SQL> / Table created. Tad rakstot iekšā jaunas rindas vai nu raksta šādi, expliciti rakstot sekvence.nextval: SQL> insert into tblSpamList values (tblSpamList_seq.nextval, 1, 'blah@blah.lv', sysdate); 1 row created. Vai arī var piemēram izveidot before insert trigeri katrai rindai un pieškirt sekvences vērtību tur, ja tā netiek piešķirta pa tiešo: 11g Oraclē var rakstīt :new.item_id := tblSpamList_seq.nextval; iepriekšējās versijās gan tas nav atļauts, tur jādara kā redzams zemāk: SQL> ed Wrote file afiedt.buf 1 create or replace trigger trg_bef_spamlist before insert on tblSpamList 2 for each row 3 begin 4 if :new.item_id is null then 5 select tblSpamList_seq.nextval into :new.item_id from dual; 6 end if; 7* end; SQL> / Trigger created. Tad inserts un gala rezultāts būs piemēram šāds: SQL> insert into tblSpamList (USER_ID) values (2); 1 row created. SQL> select * from tblSpamList; ITEM_ID USER_ID EMAIL SPAM_DATE --------------- --------------- -------------------------------------------------- ---------- 1 1 blah@blah.lv 2008.03.17 2 2 Gints Plivna http://datubazes.wordpress.com Edited March 17, 2008 by Gints Plivna Link to comment Share on other sites More sharing options...
Recommended Posts