gpt4 book ai didi

mysql - 如果数据库更新中存在记录,则在 sql 数据库中创建新记录

转载 作者:搜寻专家 更新时间:2023-10-30 23:38:39 24 4
gpt4 key购买 nike

我有 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com