On 05.05.2008 16:26, db.geek wrote:
> CREATE TABLE XX ( ID_ INTEGER NOT NULL,
> XXN_ VARCHAR(20),
> XXK_ VARCHAR(30) );
>
> I want to insert data into table XX, if has ID_ then update XXN_ and
> XXK_ else insert a new row.
>
> How to do this?
How come a db.geek doesn't know?
Basically you have two options:
1. insert, catch error and update
2. update, check update row count and insert if 0
Which of the two you choose depends on the RDBMS used as well as your
expected distribution of data. IOW if you expect that most data sets
will lead to an insert do approach 1 otherwise do 2.
Also, there can be subtle issues with concurrent updates in scenario 2,
i.e. the update can return 0 rows and the insert can still fail.
Btw, why the strange naming of columns?
Cheers
robert


|