![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 3.12.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tworze takiego triggera: [sql:1:a4d5732cbe] create or replace trigger trr_opiekunowie before insert on opiekunowie for each row begin if :new.o_id is null then select licznik.nextval into :new.o_id from dual; end if; end; / [/sql:1:a4d5732cbe] ten triger to cos wrodzaju autoimcrement w mySqlu i niestety robiąc inserta ,takiego gdzie w miejscu o_id mam NULL dostaje błędy: ORA-06502: PL/SQL: numeric or value error: number precision too large ORA-06512: at "DIVINF_12_7.TRR_OPIEKUNOWIE", line 3 ORA-04088: error during execution of trigger 'DIVINF_12_7.TRR_OPIEKUNOWIE' Czy może ktos wie dlaczego aha licznik tworze tak: [sql:1:a4d5732cbe] create sequence licznik minvalue 0 maxvalue 9999 increment by 1 start with 5;[/sql:1:a4d5732cbe] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Cytat(cinnek @ 2004-05-22 14:01:05) ... ORA-06502: PL/SQL: numeric or value error: number precision ... maxvalue 9999 Nie mam konsoli Oracla teraz pod ręką, ale popatrz na to i pokombinuj z tą wartością 9999. |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 21.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
a po co ten select (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
nie lepiej Kod :new:=licznik.nextval;
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 177 Pomógł: 6 Dołączył: 14.01.2003 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
a wiesz ostnieje takie cos fajnego co sie sekwencje zwie
on ci zapewni autoincrement chodz tak z najnowszych trednow - gdzies wyczytalem nie chcacy to sie nie robi juz incrementacji na ID z poziomu bazy tylko sie daje timestampa z milisek. - podobno szybsze. Ja jednak uzywam sequence |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat to sie nie robi juz incrementacji na ID z poziomu bazy tylko sie daje timestampa z milisek Hm tak sie zastanawiam, czy przypadkiem nie bedzie 2 takich samych, bazki rozproszone itd. A odnosnie pytania troche dziwna sprawa, skladne masz ok. Wydaje mi sie ze cos typ pola nie jest zgodny z sekwencja. Sprawdz tak: create sequence licznik minvalue 0 maxvalue 1.0E28 increment by 1 start with 5; bo tak wstawia chyba domyslnie. Ten post edytował SongoQ 27.06.2005, 09:23:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 18:07 |