Insert

Bob を使用した PostgreSQL の INSERT クエリの例を示します。

基本的な INSERT

INSERT INTO users (name, email) VALUES ($1, $2)
psql.Insert("users").
    Columns("name", "email").
    Values(psql.Arg("John Doe"), psql.Arg("john@example.com"))

複数行の INSERT

INSERT INTO users (name, email) VALUES 
    ($1, $2),
    ($3, $4)
psql.Insert("users").
    Columns("name", "email").
    Values(psql.Arg("John Doe"), psql.Arg("john@example.com")).
    Values(psql.Arg("Jane Smith"), psql.Arg("jane@example.com"))

RETURNING 句付きの INSERT

INSERT INTO users (name, email) VALUES ($1, $2) RETURNING id, created_at
psql.Insert("users").
    Columns("name", "email").
    Values(psql.Arg("John Doe"), psql.Arg("john@example.com")).
    Returning("id", "created_at")

ON CONFLICT による UPSERT

INSERT INTO users (name, email) VALUES ($1, $2)
ON CONFLICT (email) DO UPDATE SET name = EXCLUDED.name
psql.Insert("users").
    Columns("name", "email").
    Values(psql.Arg("John Doe"), psql.Arg("john@example.com")).
    OnConflict("email").
    DoUpdate().
    Set("name", psql.Raw("EXCLUDED.name"))

これらの例は、Bob を使用して PostgreSQL で実行可能な様々な INSERT クエリパターンを示しています。