化学名のデータベースを構築しています。私のメイン テーブルには、次のような 2 つの属性が含まれています。
CREATE TABLE chemicals
(
chemical id int PRIMARY KEY,
names varchar(200)[]
);
その後、テーブルは COPY で埋められます
COPY chemicals FROM chemicals_file delimiters E'\t';
私は Chemicals_file を次のようにフォーマットしました:
chemical_id { name1 name2 name3 }
......................................
ご存じのように、化学名(IUPAC 名)には文字「,」が含まれているため、名前の配列の区切り記号として使用できません。配列に別の区切り文字を指定する方法がオンライン ドキュメントで見つかりません。手伝っていただけませんか?
元の化学物質ファイルには名前ごとに 1 つのエントリがあるため、ここで使用する別のオプションは次のとおりです。
chemical_id_1 name1
chemical_id_1 name2
.......................
chemical_id_6 name3
.......................
コピーの前にトリガーを作成することです(これを行うことはできますか?)。そのため、chemical_idがテーブルに存在する場合、名前は、まったく新しい行を作成するのではなく、既存の名前の配列に追加されますが、方法がわかりませんこれらを指定できます。
BEFORE INSERT OR UPDATE のトリガーを既に作成しましたが、COPY では機能しないようです
助けてくれてありがとう;)