Mam tabelę staff
z kolumną office
. Obecnie kolumna office
nie przyjmuje wartości NULL. Aplikacja nadal działająca na tej tablicy ma błąd, który oznaczał, że gdy personel nie został przypisany do biura, próbuje wstawić wartość NULL do tabeli.Wyzwalacz MySQL przed Wstaw wartość Sprawdzanie
Zostałem poproszony o użycie spustu w celu przechwycenia wkładki na tabelę Staff
i sprawdzenie, czy wartość office
wynosi NULL i zastąpienie jej wartością N/A
.
Poniżej moja dotychczasowa próba, ale przy próbie wdrożenia mam error
. Wszelkie pomysły, jak rozwiązać ten problem.
CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL)
INSERT INTO Staff SET office="N/A";
END IF
END;
Błąd:
MySQL Database Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO Staff SET office="N/A"; END'
Dlaczego nie zmienić schemat tak, że 'wartości NULL' są dozwolone? Właśnie do tego powinno się używać 'NULL', ponieważ umożliwia rozróżnienie pomiędzy brakiem biura a biurem, które ma wartość" N/A "(podczas gdy proponowane przez ciebie rozwiązanie nie byłoby). – eggyal