1 回のバッチ操作で挿入したいアイテムが最大 100 個あります。私はこのようにやっています:
INSERT INTO MyTable (f1, f2, ..., fk) VALUES
(v11, v12, ..., v1k),
(v21, v22, ..., v2k),
...
(vn1, vn2, ..., vnk)
すべて問題ありませんが、値をそのまま連結してこの文字列を作成しています。これは、コードが SQL インジェクションに対して脆弱であることを意味します。
SQL インジェクションから保護しながら、一括挿入構文を引き続き使用するにはどうすればよいですか?
編集1
もう少し文脈を提供したいと思います。私が使用しようとしている実際の SQL (まさにこの瞬間にコードを書いています) は、次の形式を持っています。
WITH new_parent AS (
INSERT into parent (g1, g2, ..., gm) VALUES (v1, v2, ..., vm) RETURNING id
) INSERT INTO MyTable (parent_id, f1, f2, ..., fk) VALUES
(new_parent.id, v11, v12, ..., v1k),
(new_parent.id, v21, v22, ..., v2k),
...
(new_parent.id, vn1, vn2, ..., vnk)