相关疑难解决方法(0)

插入如果不存在oracle

我需要能够运行Oracle查询,该查询将插入多个行,但它还会检查是否存在主键,如果存在,则会跳过该插入.就像是:

INSERT ALL
    IF NOT EXISTS( SELECT 1 WHERE fo.primary_key='bar' )
    (
        INSERT INTO 
            schema.myFoo fo ( primary_key, value1, value2 )
        VALUES
            ('bar','baz','bat')
    ),

    IF NOT EXISTS( SELECT 1 WHERE fo.primary_key='bar1' )
    (
        INSERT INTO 
            schema.myFoo fo ( primary_key, value1, value2 )
        VALUES
            ('bar1','baz1','bat1')
    )
SELECT * FROM schema.myFoo;
Run Code Online (Sandbox Code Playgroud)

Oracle完全可以实现这一点吗?

如果您可以告诉我如何在PostgreSQL或MySQL中执行此操作,可以获得奖励积分.

sql oracle oracle-sqldeveloper

42
推荐指数
6
解决办法
12万
查看次数

oracle如果行不存在则插入

insert ignore into table1 
select 'value1',value2 
from table2 
where table2.type = 'ok'
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到错误"缺少INTO关键字".

有任何想法吗 ?

sql oracle insert

14
推荐指数
3
解决办法
5万
查看次数

如何在Oracle中有条件地插入?

我在这里读到语法如下所示:

INSERT
WHEN ([Condition]) THEN
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
ELSE
INTO [TableName] ([ColumnName])
VALUES ([VALUES])
SELECT [ColumnName] FROM [TableName];
Run Code Online (Sandbox Code Playgroud)

但我不想从另一个表中提供值.我只想打字,所以我有:

INSERT 
WHEN EXISTS (SELECT 1 FROM FOO WHERE NAME = 'JOE') 
THEN
INTO BAR (NAME, AGE) 
VALUES ('JOE', 50)
Run Code Online (Sandbox Code Playgroud)

这会产生异常:ORA-00928:缺少SELECT关键字.

如果在另一个表中找到给定值,我想执行插入.

sql oracle

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

oracle ×3

sql ×3

insert ×1

oracle-sqldeveloper ×1