Изучение SQL в CS50: RuntimeError: около «IF»: синтаксическая ошибка - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь создать таблицу под названием акции, которая отслеживает, сколько акций есть у кого-то после покупки определенной суммы.Это самый сложный код SQL, который я когда-либо пробовал, и я думаю, что пишу что-то не так.Может кто-нибудь заметить ошибки?

db.execute("IF EXISTS (SELECT * FROM stock WHERE symbol = :symbol AND userid = :userid) 
    UPDATE stock SET (amount = amount + 1) WHERE userid = :userid 
    ELSE INSERT INTO stock (userid, symbol, amount) 
    VALUES ((SELECT id FROM users WHERE id = :userid), 
        :symbol, :amount", userid = session["user_id"], symbol = symbol, amount = share_number)

1 Ответ

0 голосов
/ 26 августа 2018

Вам не хватает скобки после

INSERT INTO stock (userid, symbol, amount) 
VALUES ((SELECT id FROM users WHERE id = :userid), :symbol, :amount

и вместо (SELECT id FROM users WHERE id = :userid) вы можете просто написать

INSERT INTO stock (userid, symbol, amount) 
VALUES (:userid, :symbol, :amount)
...