[英]Conditional INSERT INTO for Postgres
我使用 Postgres 12,並且我有兩個表users u
和sessions s
以下列s.user_id (FK) ==> u.user_id
。
我想插入一個session,以防密碼正確並且我發現了這種類型的語句:
INSERT INTO sessions (c1, c2, c3)
SELECT ??? FROM sessions
WHERE NOT EXISTS(
SELECT * FROM users WHERE users.pwsha256 = "1234..."
)
LIMIT 1;
這看起來很有希望,但是我如何將u.user_id
從users
帶到INSERT INTO
以引用它們? 非常感謝任何幫助!
您不僅要驗證密碼,還要檢查用戶名是否正確:
INSERT INTO sessions
(user_id, ...)
VALUES (
(SELECT id FROM users
WHERE username = '...'
AND users.pwsha256 = '1234...'),
...);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.