【发布时间】:2012-09-13 19:02:51
【问题描述】:
我正在编写一个与 MS SQL Server、MySQL 和 Oracle 对话的数据库层。我需要一个操作,如果它包含某些数据,它可以更新现有行,否则插入一个新行;一站式 SQL 操作。
基本上我需要保存现有数据(如果存在),或者添加它(如果不存在)
从概念上讲,这与 upsert 相同,只是它只需要在单个表上工作。我正在努力确保我不需要先删除再插入,因为这会影响性能。
是否有通用 SQL 来执行此操作,还是我需要供应商特定的解决方案?
谢谢。
【问题讨论】:
-
从一般的角度来看,使用删除+插入方法可能会更好。假设您使用的是索引列,您应该没问题。但是,作为 podiluska cmets,一旦深入了解,纯粹的通用 SQL 就是一个神话。
标签: mysql sql sql-server database oracle