Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pernyataan mySQL bersyarat. Jika benar UPDATE, jika salah INSERT

PERBARUI: Catatan Anda perlu menggunakan IF EXISTS bukannya IS NULL seperti yang ditunjukkan dalam jawaban asli.

Kode untuk membuat prosedur tersimpan untuk merangkum semua logika dan memeriksa apakah Flavours ada:

DELIMITER //

DROP PROCEDURE `GetFlavour`//
CREATE PROCEDURE `GetFlavour`(`FlavourID` INT, `FlavourName` VARCHAR(20))
BEGIN
IF EXISTS (SELECT * FROM Flavours WHERE ID = FlavourID) THEN
UPDATE Flavours SET ID = FlavourID;
ELSE
INSERT INTO Flavours (ID, Name) VALUES (FlavourID, FlavourName);
END IF;
END //

DELIMITER ;

ASLI:

Anda bisa menggunakan kode ini. Ini akan memeriksa keberadaan catatan tertentu, dan jika kumpulan catatan adalah NULL, maka itu akan melewati dan memasukkan catatan baru untuk Anda.

IF (SELECT * FROM `TableName` WHERE `ID` = 2342 AND `Name` = 'abc') IS NULL THEN
INSERT INTO `TableName` (`ID`, `Name`) VALUES ('2342', 'abc');
ELSE UPDATE `TableName` SET `Name` = 'xyz' WHERE `ID` = '2342';
END IF;

Saya sedikit berkarat pada sintaks MySQL saya, tetapi kode itu setidaknya akan membantu Anda memahaminya, daripada menggunakan ON DUPLICATE KEY.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah Basis Data UTF-8

  2. Cara mendapatkan perbedaan antara dua tanggal dibulatkan menjadi jam

  3. gunakan nilai kolom sebagai nama kolom mysql

  4. Menyimpan stempel waktu di tabel mysql menggunakan php

  5. Bagaimana cara memasukkan baris baru ke database dengan kolom AUTO_INCREMENT tanpa menentukan nama kolom?