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

Sisipan bersyarat berdasarkan LAST_INSERT_ID

Percobaan kedua Anda hampir benar. Anda harus memeriksa nilai NULL dengan IS NOT NULL. Jadi gunakan

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

atau

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 != 

Yang pertama tidak bisa bekerja:

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

karena sintaks JIKA adalah

Eksekusi pernyataan bersyarat hanya dimungkinkan di rutinitas tersimpan . Sintaks JIKA dari rutinitas yang tersimpan akan memungkinkan sesuatu seperti

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

Anda harus membedakan kedua versi sintaks tersebut.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dapatkan daftar teman di mysql

  2. Tabel MySQL.* SEBAGAI referensi

  3. penyortiran alami mysql

  4. Bagaimana cara memasukkan data ke kolom dari PHP ke MariaDB?

  5. Bagaimana cara mengambil cadangan database mysql dengan menggunakan java?