Próbowałem zrobić coś takiego, jak auto-inkrementacja w Oracle 11g Express i SQL Developer. Niewiele wiem o Oracle i jestem też nowym wyzwalaczem.Tworzenie wyzwalacza w Oracle Express
Próbowałem uruchomić to, ale nie wiem jak to zrobić poprawnie.
CREATE TABLE theschema.thetable
(id NUMBER PRIMARY KEY,
name VARCHAR2(30));
CREATE SEQUENCE theschema.test1_sequence
START WITH 1
INCREMENT BY 1;
create or replace trigger insert_nums
before insert on theschema.thetable
for each row
begin
select test1_sequence.nextval into :new.id from dual;
end;
/
Kiedy próbuję stworzyć spust, otrzymuję ekran, który prosi mnie o pewne "powiązania". Okno dialogowe ma tylko jedno pole wyboru "null". Co to oznacza i jak zrobić skrypt, który działa poprawnie?
Jakieś środki ostrożności podczas robienia tego rodzaju "auto-inkrementacji"?
Dodałem tag SQL-Developer, ponieważ ten kod wygląda dobrze; Prosi o wypełnienie zmiennej powiązania, więc zakładam, że jest pewne ustawienie, które trzeba wyłączyć ... Nie mam pojęcia co. – Ben
BTW, od Oracle 11 można bezpośrednio odwoływać się do sekwencji. Oznacza to, że możesz napisać ': new.id: = test1_sequence.nextval' bez użycia SELECT. – Ben
To samo pytanie tutaj! Dzięki za twój post! –