我正在建立一个化学名称数据库。我的主表包含两个属性,如下所示:
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 名称)在内部包含字符“,”,因此我不能将其用作名称数组的分隔符。我无法在在线文档中找到为数组指定另一个分隔符的任何方法。请你帮助我好吗?
我在这里可以选择另一种选择,因为原始化学品文件的每个名称都有一个条目,例如:
chemical_id_1 name1
chemical_id_1 name2
.......................
chemical_id_6 name3
.......................
将是在复制之前创建一个触发器(可以这样做吗?),这样如果表中的化学 ID 退出,则名称将添加到现有的名称数组中,而不是创建一个全新的行,但我不知道如何这些可以指定。
我已经在插入或更新之前创建了一个触发器,但它似乎不适用于 COPY
非常感谢您的帮助 ;)