snippetsqlCritical
How to insert or update using single query?
Viewed 0 times
insertupdatequerysingleusinghow
Problem
I have a table test having columns id which primary key and auto incremented and name.
I want to insert a new record if annd only if there are no records.For example
input is id=30122 and name =john
if there are records with id 30122 then I have update the name column to john,if there are no records then I have insert a new record.
I can do using 2 queries like
if it has some records then I can use
or if it does not have records then I can use
But I wanted to use single query?
Can somebody tell if its possible?
I want to insert a new record if annd only if there are no records.For example
input is id=30122 and name =john
if there are records with id 30122 then I have update the name column to john,if there are no records then I have insert a new record.
I can do using 2 queries like
select * from test where id=30122if it has some records then I can use
update test set name='john' where id=3012or if it does not have records then I can use
insert into test(name) values('john')But I wanted to use single query?
Can somebody tell if its possible?
Solution
You can try this
Other approach for better performance is
and also read this bad habits to kick on schema prefix
IF EXISTS(select * from test where id=30122)
update test set name='john' where id=3012
ELSE
insert into test(name) values('john');Other approach for better performance is
update test set name='john' where id=3012
IF @@ROWCOUNT=0
insert into test(name) values('john');and also read this bad habits to kick on schema prefix
Code Snippets
IF EXISTS(select * from test where id=30122)
update test set name='john' where id=3012
ELSE
insert into test(name) values('john');update test set name='john' where id=3012
IF @@ROWCOUNT=0
insert into test(name) values('john');Context
StackExchange Database Administrators Q#89696, answer score: 62
Revisions (0)
No revisions yet.