我正在用notifyix编写一个sql脚本,该脚本将csv文件中的数据加载到临时表中,然后在尚不存在的情况下插入数据。
csv具有3列,并插入到名为temp_table_csv的临时表中:
temp_table_csv
msg_group
code
message
'code'对应于table1和table1中的相同代码字段。ID是table.code_id的外键。
table1
ID serial PK
code varchar(255) FK
msg_group varchar(255)
table2
lang_id serial PK
code_id varchar(255) FK
msg_pt1 varchar(255)
msg_pt2 varchar(255)
如果table1中存在临时表中的代码,那么我想忽略它。
否则,如果不存在:
应该在表1中添加一个新条目,并在临时表中添加一个新ID和msg_group。此外,还应该使用code_id作为table1.ID和msg_pt1作为消息来更新table2。
我已经将数据保存到临时表中,我不确定如何检查'ID'现在是否存在。
答案 0 :(得分:0)
Informix ...也许我错了,但是无论如何它闻起来像Avaya产品。没有任何样本,我建议您尝试类似的
INSERT INTO table2(field1, field2)
SELECT msg_pt1, msg_pt2
FROM #TEMPORARY_CSV_OR_WHATEVER T
WHERE T.ID NOT IN(SELECT ID FROM table1)
INSERT INTO table1(ID)
SELECT ID
FROM #TEMPORARY_CSV_OR_WHATEVER T
WHERE T.ID NOT IN(SELECT ID FROM table1)