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

Bagaimana saya bisa menerima email ketika tabel MySQL saya diperbarui?

Cara terbaik untuk mencapai ini adalah menggunakan pemicu dan cron. Buat tabel 'antrean pemberitahuan' dan isi dengan pemicu saat baris dimasukkan ke tabel yang diinginkan.

mis.

CREATE TABLE `notification_queue` (
  `notification_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sent` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY (`notification_id`)
);

Kemudian tentukan pemicu sederhana:

DELIMITER $$
CREATE TRIGGER t_notification_insert 
AFTER INSERT ON [table_being_inserted]
FOR EACH ROW 
BEGIN 
    INSERT INTO `notification_queue` (`sent`) VALUES (0);
END$$
DELIMITER ;

Sejak saat itu, yang perlu Anda lakukan adalah menjalankan crontab di server (katakanlah setiap menit) yang memilih dari notification tabel di mana sent = 0 , kirim notifikasi dan setel sent = 1

Sejauh yang saya tahu, itulah cara terbaik untuk mengeluarkan informasi tersebut dari DB tanpa membaca log bin.

Jika Anda memerlukan contoh skrip untuk dijalankan dengan cron:

#!/bin/bash

DB_USER=''
DB_PASS=''
DB_NAME=''

ID=`mysql -u$DB_USER -p$DB_PASS $DB_NAME -Bse "SELECT notification_id FROM notification_queue WHERE sent=0 LIMIT 1;"`

if [[ ! -z $ID ]] 
then
    # SEND MAIL HERE
    RESULT=`mysql -u$DB_USER -p$DB_PASS $DB_NAME -Bse "UPDATE notification_queue SET sent=1 WHERE notification_id = $ID;"`
    echo "Sent"
fi


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendukung transaksi, penguncian tingkat baris, dan kunci asing

  2. Terhubung ke database MySQL jarak jauh menggunakan Android

  3. Regexp dan mysql:apakah ada operator DAN

  4. Permintaan ekspresi reguler di Hibernate

  5. MYSQL DAN kueri untuk memuaskan pada kolom yang sama