sql >> Databáze >  >> RDS >> Mysql

Podmíněná vložka na základě LAST_INSERT_ID

Tvůj druhý pokus byl téměř správný. Musíte zkontrolovat hodnoty NULL pomocí IS NOT NULL. Takže použijte

INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL;  -- instead of != 

nebo

INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT t.* FROM (
    SELECT @EVENT_ID, 'Notes', 'WO#89574'
) t
WHERE @EVENT_ID IS NOT NULL;  -- instead of != 

První nefunguje:

-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null, 
    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...

protože syntaxe IF je

Podmíněné provádění příkazů je možné pouze v uložených rutinách . syntaxe IF uložených rutin by umožnilo něco jako

IF @EVENT_ID IS NOT NULL THEN
    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF

Musíte rozlišovat obě verze syntaxe.




  1. MySQL Vyberte dotaz pro načtení záznamů na základě hodnot seznamu

  2. Python MySQLdb iteruje tabulkou

  3. PostgreSQL date() s časovým pásmem

  4. Je možné v Androidu použít Couch DB nebo MySql nebo jakoukoli jinou DB?