Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Warunkowa instrukcja mySQL. Jeśli prawda UPDATE, jeśli fałsz INSERT

AKTUALIZACJA: Pamiętaj, że musisz użyć IF EXISTS zamiast IS NULL jak wskazano w oryginalnej odpowiedzi.

Kod do tworzenia procedury składowanej, aby zawrzeć całą logikę i sprawdzić, czy istnieją smaki:

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 ;

ORYGINAŁ:

Możesz użyć tego kodu. Sprawdza istnienie konkretnego rekordu, a jeśli zestaw rekordów ma wartość NULL, przejdzie i wstawi nowy rekord za Ciebie.

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;

Jestem trochę zardzewiały w mojej składni MySQL, ale ten kod powinien przynajmniej zapewnić Ci większość drogi, zamiast używać 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. MySQL MariaDB – zapytanie przy użyciu tabeli temp

  2. Dodaj wartość do kolumny każdego miesiąca w bazie danych Mysql

  3. MySQL - jak wyświetlić najnowszy temat na wątek

  4. MySQL-GRUPA i LICZBA według daty

  5. Połącz pola z różnych rzędów pod warunkiem