ちゃんと理解してないと思いもよらないことになってそうだし
試した感じ キーなしでも明示的に undefined でも更新対象にはならない
inert の場合は undefined 問わず全レコードのオブジェクトに対してキー一覧を取り出して undefined になってれば DEFAULT が設定される
DEFAULT は接続時のオプションで null に置き換えできるみたい
pg("foo").update({a: 1, b: null, c: undefined, d: pg.raw("DEFAULT")}).toString()
// "update "foo" set "a" = 1, "b" = NULL, "d" = DEFAULT"
pg("foo").insert([{a: 1, b: null, c: undefined}, {}]).toString()
// "insert into "foo" ("a", "b", "c") values (1, NULL, DEFAULT), (DEFAULT, DEFAULT, DEFAULT)"
update で DEFAULT 値にしたいなら raw で DEFAULT 指定必要
inert 構文ではカラム名を列挙するので 配列で複数レコードがあるとどれかのレコードにあるキーは値問わずカラムとして追加される
それで各レコードに対してカラムの値を列挙してる感じ
事前に DB 接続してると言ってもテーブル名からテーブル定義を参照したりはしないので実際に存在しないキーがあればカラム名になるし 実行すればエラーが起きる
上の例を実行したときは foo テーブルなんて作ってないし