Informix / SQL-从CSV加载数据并在尚不存在的情况下插入

时间:2018-12-08 21:42:52

标签: sql informix

我正在用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'现在是否存在。

1 个答案:

答案 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)