Как вы пишете предложение when со сравнением нескольких столбцов в SQLite? - PullRequest
0 голосов
/ 29 марта 2019

Я создаю базу данных SQLite, в которой я хочу иметь три таблицы: Users, Books и Bought.Пользователь существует из столбцов имя пользователя, пароль, имя, улица, номер дома, почтовый индекс и страна, где имя пользователя является первичным ключом.Книги существуют в столбцах ISBN, год, название, жанр, цена, автор, издатель, сводка, количество страниц и количество товаров, где ISBN и год являются первичными ключами.И существует купленный из столбцов имя пользователя, ISBN, год, количество и время, где имя пользователя, ISBN и год являются внешними ключами.

Я хочу добавить триггер таким образом, чтобы при добавлении кортежаПокупатель SQL проверит, достаточно ли этой книги на складе, и если это так, то он изменит номер запаса этой книги в Книгах и добавит заказ к Покупке.

Я уже что-то пробовал, но все равно выдает синтаксическую ошибку в предложениях when, но я не знаю почему.Вот триггер вставки, который я сделал:

CREATE TRIGGER BoughtInStockTrigger
BEFORE INSERT ON Bought
FOR EACH ROW
WHEN (NEW.amount <= (SELECT SUM(amountinstock) FROM Books B WHERE B.ISBN = NEW.ISBN AND B.year = NEW.year))
BEGIN
    UPDATE Books
    SET amountinstock = amountinstock - NEW.amount
    WHERE ISBN = NEW.ISBN AND year = NEW.year;
END
WHEN (NEW.amount > (SELECT SUM(amountinstock) FROM Books B WHERE B.ISBN = NEW.ISBN AND B.year = NEW.year))
BEGIN
    ROLLBACK;
END;

Где я допустил синтаксическую ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...