How to use a single query for sql update or insert?
I have a table test having columns id which primary key and auto incremented and name. I want to insert a new record if and 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 updated the name column to john,if there are no records then I have inserted a new record.
I can do using 2 queries like
select * from test where id=30122
if it has some records then I can use update test set name='john' where id=3012
or if it does not have records then I can use
insert into test(name) values('john')
But I wanted to use a single query?
Can somebody tell if it's possible?
For sql update or insert -
You can try this
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