Unix Technical Forum

conditional insert with values; insert into .. values(...) where notexist (....);

This is a discussion on conditional insert with values; insert into .. values(...) where notexist (....); within the Oracle Miscellaneous forums, part of the Oracle Database category; --> This is what I wish I could to do. insert into table_x (a, b, c) values(1, 2, 3) where ...


Go Back   Unix Technical Forum > Database Server Software > Oracle Database > Oracle Miscellaneous

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-29-2008, 09:28 PM
md
 
Posts: n/a
Default conditional insert with values; insert into .. values(...) where notexist (....);

This is what I wish I could to do.

insert into table_x (a, b, c)
values(1, 2, 3)
where not exist (select * from table_x where a = 2);

Thank you.




additional info:
I've seen conditional inserts without values(....), as in

INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE NOT EXISTS (SELECT *
FROM clients
WHERE clients.client_id =
suppliers.supplier_id);

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 05-02-2008, 06:05 AM
Peter Nilsson
 
Posts: n/a
Default Re: conditional insert with values; insert into .. values(...) wherenot exist (....);

md wrote:
> This is what I wish I could to do.
>
> insert into table_x (a, b, c)
> values(1, 2, 3)
> where not exist (select * from table_x where a = 2);
>
> Thank you.


Look up 'insert when'.

--
Peter
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 05-02-2008, 06:05 AM
Ed Prochak
 
Posts: n/a
Default Re: conditional insert with values; insert into .. values(...) wherenot exist (....);

On Apr 29, 11:08 am, md <mardahl2...@yahoo.com> wrote:
> This is what I wish I could to do.
>
> insert into table_x (a, b, c)
> values(1, 2, 3)
> where not exist (select * from table_x where a = 2);


(BTW it helps to spell EXISTS correctly. Best is to copy and paste the
query you tried instead of retyping it because something always goes
wrong when manually retyping.)
>
> Thank you.
>

you are just so close to seeing the answer, try this:
drop table ejp;

create table ejp as
select 3 a,2 b,1 c from dual ;

select * from ejp ;

insert into ejp (a, b, c)
select 2, 2, 3 from dual
where not exists
(select * from ejp where a = 2);

select * from ejp ;


insert into ejp (a, b, c)
select 1, 2, 3 from dual
where not exists
(select * from ejp where a = 2);

select * from ejp ;

And the results:
Table dropped.
Table created.

A B C
---------- ---------- ----------
3 2 1


1 row selected.
1 row created.

A B C
---------- ---------- ----------
3 2 1
2 2 3


2 rows selected.
created.

A B C
---------- ---------- ----------
3 2 1
2 2 3


2 rows selected.

(sorry for the separate script/output. I ran this from Toad.

HTH,
Ed
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 08:13 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com