gpt4 book ai didi

sql - 这个sql是什么意思

转载 作者:行者123 更新时间:2023-12-04 05:29:35 25 4
gpt4 key购买 nike

INSERT INTO MAPPING_TBL ( G_ID, MR_ID, G_TYPE, G_NUMBER ) 
SELECT :G_ID AS G_ID, :MR_ID AS MR_ID, :G_TYPE AS G_TYPE, :G_NUMBER AS G_NUMBER
FROM DUAL WHERE NOT EXISTS
(SELECT G_ID, MR_ID, G_TYPE, G_NUMBER
FROM MAPPING_TBL
WHERE G_ID = :G_ID2 AND
MR_ID = :MR_ID2 AND
G_TYPE = :G_TYPE2 AND
G_NUMBER = :G_NUMBER2 )

谁能解释一下这个 sql 实际在做什么?特别是这是什么
SELECT :G_ID AS G_ID, :MR_ID AS MR_ID, :G_TYPE AS G_TYPE, :G_NUMBER AS G_NUMBER 
FROM DUAL

sql做,谢谢。

最佳答案

这是一个“条件插入”。

该语句正在将用户提供的记录插入表中 MAPPING_TBL如果该记录不存在于表中。在 MySQL 中,这是作为“插入忽略”完成的。在当代 Oracle 中,可以使用“MERGE INTO”达到相同的效果。
SELECT :G_ID AS G_ID ... FROM DUAL是一种指定值元组的方法,在这种情况下,来自调用程序的参数化值。 (例如,如果您从 DUAL SELECTed 1, 2, 3, 4 FROM DUAL,您将获得这些值连续返回。在这种情况下,调用程序在查询执行时提供 :G_ID 等。)

关于sql - 这个sql是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791838/

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