【发布时间】:2017-11-16 02:18:05
【问题描述】:
我目前正在学习如何通过 PostgreSQL 使用数据库。我正在定义一个函数,它将根据各种条件将行从一个表添加到另一个表,一个条件是如果目标表中已经存在该行,则不会添加它但不会引发异常,程序将只需继续到下一行。正如您可能已经猜到的那样,所有这些都发生在LOOP...END LOOP 内; FOR。
问题是我们的教授认为ON CONFLICT DO NOTHING 不标准,并坚持我们使用另一种方法。我进行了广泛的搜索,但真的不明白如何应用人们在类似情况下提出的一些答案。我的想法确实是:
IF variable1, variable2, variable3 NOT IN (SELECT v1, v2, v3 FROM target_table) THEN INSERT INTO target_table VALUES(variable1, variable2, variable3);
END IF;
但从语法的角度来看,这显然是不正确的。谁能给我一些指导?
谢谢
【问题讨论】:
-
您说“我进行了广泛的搜索,但真的不明白如何应用人们在类似情况下提出的一些答案”;如果您链接或告诉这些建议,以便更彻底地讨论它们会更好。这将有助于人们进入真正的问题和具体的事情,因为描述有点模糊和冗长
-
这是个好主意,卡洛斯,这是我第一次问关于她的数据库的问题,我什至没有考虑过。加里的回答给了我我需要的东西,我会记住下一个问题。干杯!
标签: database postgresql if-statement