我有 4 个数据库:sql server、MySql、DB2 和 Oracle。
我想用一些新记录写一个脚本,
但对于某些记录可能已经存在。
因此,如果 yjr 数据库更新中存在记录,则需要执行 else 在 sql 数据库中创建新记录。
是否可以用脚本而不是过程来编写?
就像如果记录不退出(创建数据)否则(更新数据)
我看到了多个链接,但大多数都只与程序相关
sql - query to insert a column value if it does not exist in that column
http://www.codeproject.com/Questions/162627/how-to-insert-new-record-in-my-table-if-not-exists
谢谢
最佳答案
要拥有统一的跨 RDBMS SQL,您可能需要在 SQL Server、MySQL 和 DB2 中创建 DUAL
表:
CREATE TABLE DUAL (DUMMY VARCHAR(1));
INSERT INTO DUAL (DUMMY) VALUES ('X');
然后对于每条记录,您将能够:
UPDATE Table SET Column = 'Value' WHERE PK = 'ID';
INSERT INTO Table (Column, PK)
SELECT 'Value', 'ID' FROM DUAL
WHERE NOT EXISTS(SELECT '*' FROM Table WHERE PK = 'ID');
如果创建 DUAL
不是一个选项,同样可以通过以下方式实现:
UPDATE Table SET Column = 'Value' WHERE PK = 'ID';
INSERT INTO Table (Column, PK)
SELECT 'Value', 'ID' FROM (SELECT Count(*) As DUMMY FROM Table) DUAL
WHERE NOT EXISTS(SELECT '*' FROM Table WHERE PK = 'ID');
关于mysql - 如果数据库更新中存在记录,则在 sql 数据库中创建新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054503/