Trigger w MySql nie działa.

Trigger w MySql nie działa.
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Gdy dodaje ten wyzwalacz nie chce mi dodać użytkownika do bazy, wie ktoś co może być powodem?

Kopiuj
create trigger user_create
  before insert
  on user
  for each row
BEGIN
  INSERT INTO user
  (createDate
  )
    values (sysdate());

END;
Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

Pewnie wyzwalacz się wywala...
Pewnie nie wiesz, co on robi...
To, co chcesz zrobić robi się za pomocą defaulta.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Pewnie, że nie wiem co on robi :)
Czyli nie ma możliwości zrobić tego wyzwalaczem?

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
1

Zdefiniuj pole w tabeli user jako createDate TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP()

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

Głównie chodzi mi właśnie o użycie wyzwalacza, bo chcę ogarnąć jak to działa a na necie znalazłem bardzo podobny przykład do tego co zrobiłem.

Masz może pomysł do czego go mogę użyć? Jest sens np. mieć jakąś zmienną w tabeli powiedzmy last_update i dodawać do tego aktualną datę?

kate87
  • Rejestracja: dni
  • Ostatnio: dni
0

W momencie kiedy masz element który może być edytowany. Np wystawiasz faktury i chcesz wiedzieć dla kogo się już przeprocesowalo a dla kogo nie. Robisz sobie tabelkę gdzie pakujesz id osoby i flagę last update, gdzie triggerem edytujesz date datę po każdym insercie w tabeli faktur. Potem sprawdzasz czy last update wskazuje odpowiednią datę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.