Skip to main content

MYSQL INSERT OR UPDATE in Single SQL Statement

You might want to update or insert Database single statement rather than checking the record is inserted or and again go to the update.

But using following SQL statement you can run First run and check Insert statement and if that fails Update statement after that.


Assume my table structure as follows

Create the sample table as below


CREATE TABLE IF NOT EXISTS `tbl_test` (

 cat_id int AUTO_INCREMENT,
 name varchar(50),
 primary key(cat_id)

)

add some records to tbl_test


INSERT INTO tbl_test (name) VALUES ('cat 111'),('cat 2'),('cat 3');


and finally you can update the record or insert by following


INSERT INTO tbl_test (cat_id,name) VALUES (1,' cat 1 ')
ON DUPLICATE KEY UPDATE name=' cat 1 '

That's IT.

Cheers

Comments

Popular posts from this blog

Dual Screen Script for Ubuntu

I have experienced problems when installing two monitors in Ubuntu. Following script will help you to solve this problem. I had problems when saving below values so I created a script and put it to the startup. #!/bin/sh xrandr --output VGA-0 --mode 1920x1080 --pos 1280x0 --rotate normal --output DVI-I-1 --off --output DVI-I-0 --mode 1280x1024 --pos 0x0 --rotate normal --output HDMI-0 --off

Execute *.sql with .NET

Do you ever want to execute slq statements at once. I mean SQL Script file. Normally we are using like following commands to Execute Single SQL statement. SqlCommand cmd = new SqlCommand(sSQL, conn); cmd.ExecuteNonQuery(); cmd.Dispose(); but this way you can execute one command at a time. We cannot execute SQL script using above command. Normal SQL Script Like this. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__titleauth__au_id__0519C6AF]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[titleauthor] DROP CONSTRAINT FK__titleauth__au_id__0519C6AF GO CREATE TABLE [dbo].[authors] ( [au_id] [id] NOT NULL , [au_lname] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [au_fname] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [phone] [char] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [address] [varchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [city] [varchar] (20) COLL...

MYSQL Compare data in different Databases

Following statement will compare values in two databases and gives you records that not matched. SELECT stage,live,path,scope_id FROM ( SELECT (CASE WHEN (S.value = L.value) THEN '' ELSE 'N/M' END) as matched, S.scope_id, S.path, S.value AS 'stage', L.value AS 'live' FROM cin_stage.core_config_data S INNER JOIN cin_live.core_config_data L ON S.path = L.path ) RES WHERE matched = 'N/M' ORDER BY scope_id