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

Kesalahan sintaks pada Pemicu MYSQL

Agar klien MySQL Anda tidak menafsirkan ; yang mengakhiri INSERT pernyataan sebagai akhir dari CREATE TRIGGER pernyataan, Anda harus menginformasikannya bahwa Anda ingin menggunakan beberapa pembatas pernyataan lainnya.

Di mysql klien baris perintah, Anda dapat melakukannya dengan DELIMITER perintah . Misalnya, untuk mengubah pembatas pernyataan Anda menjadi titik koma ganda:

DELIMITER ;;

Kemudian Anda dapat melakukan:

CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW BEGIN
  INSERT INTO WORKLOG_BACKUP VALUES (
    NULL,
    CURRENT_TIMESTAMP,
    NEW.LOGNO,
    NEW.JOBNO,
    NEW.EMPLOYEENO,
    NEW.WORKDATE,
    NEW.WORKTIME,
    'UPDATE'
  );
END;;

Namun, karena dalam kasus ini pemicu Anda hanya berisi satu pernyataan, Anda tidak perlu menggunakan BEGIN ... END blok pernyataan majemuk dan karenanya dapat menghindari perubahan pembatas sama sekali:

CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW
  INSERT INTO WORKLOG_BACKUP VALUES (
    NULL,
    CURRENT_TIMESTAMP,
    NEW.LOGNO,
    NEW.JOBNO,
    NEW.EMPLOYEENO,
    NEW.WORKDATE,
    NEW.WORKTIME,
    'UPDATE'
  )
;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan PHP untuk mengunggah file dan menambahkan jalur ke database MySQL

  2. jalankan kode PHP saat memilih item kotak kombo

  3. COUNT(*) dari beberapa tabel di MySQL

  4. Bagaimana cara mengimpor file .dmp (Oracle) ke MySql DB?

  5. Apa cara terbaik untuk memasukkan hanya bulan, hari dan waktu di tabel database?