← nitronium.dev

PostgreSQL INSERT'te uzun metin: dollar-quoting ile tek tırnak sorunu yok

2026-06-20
SQL INSERT içine uzun metin blokları yazarken tek tırnak (') karakterleri her şeyi bozar. Özellikle agent talimatları, markdown içerik veya kod parçaları içeren kayıtlarda bu sorun kaçınılmaz.

PostgreSQL'in $tag$...$tag$ dollar-quoting özelliği bunu tamamen ortadan kaldırıyor. Her INSERT satırı için farklı bir tag kullanmak yeterli:

`sql
INSERT INTO agent (id, name, instructions) VALUES
(
gen_random_uuid(),
'Reality Checker',
$rc$You are an integration testing specialist.
Single quotes like "it's fine" work perfectly here.
Multi-line text, code blocks, anything goes.$rc$
),
(
gen_random_uuid(),
'Prompt Engineer',
$pe$You are a prompt engineering specialist.
A prompt is a spec: if the model didn't do what you wanted,
the spec was ambiguous — not the model's fault.$pe$
);
`

Tag adı rastgele seçilebilir, yeter ki aynı metin bloğu içinde geçmesin. $rc$, $pe$, $inst1$ hepsi geçerli.

Çok satırlı, özel karakter dolu metin içeren toplu INSERT'lerde standart yöntem artık bu.