簡體   English   中英

Postgres 的條件 INSERT INTO

[英]Conditional INSERT INTO for Postgres

我使用 Postgres 12,並且我有兩個表users usessions 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_idusers帶到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM