Szukałem w Internecie, jak używać "przed wyzwalaczem" w sqlite. Wiem poprawnie o użyciu "po wyzwalaczu". Znalazłem ten, który powiedział, że "przed wyzwalaczem" został użyty do sprawdzenia przed zmianami wprowadzonymi do bazy danych (wiersz wstaw/aktualizuj w tabeli). Aby wyczyścić wyrażenie, napisałem wyzwalacz, w którym typ jest wcześniejszy, a zdarzenie wstawiane jest do sprawdzania znaku przed wstawieniem. spust jestSposób sprawdzania z przed wstawić wyzwalacz w sqlite
create trigger mark_insert before insert on exam
when mark<=50
begin
insert into exam(mark) values(50);
end;
Może to źle spust. Czy mógłbyś wskazać mi błędy? Chcę sprawdzić, czy znak jest mniejszy lub równy 50. Jeśli tak, chcę wstawić wartość domyślną (w tym przypadku 50). Nie jestem zaznajomiony z sql i wyzwalaczem i zaczynam się uczyć.
Mój egzamin tabela ma następujące kolumny,
id(pk) | subject | mark
dzięki za pomoc. Ale mam ten błąd: brak takiego znaku w kolumnie. Czy to ze względu na raise()? Czy możesz wyjaśnić funkcję podnoszenia? Z góry dziękuję. – waiyan
'Podnieś' to sposób generowania błędu w wyzwalaczu. http://www.sqlite.org/lang_createtrigger.html –
Po instrukcji SELECT wymagane jest ';'. –