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

Buat pemicu mysql melalui PHP?

Sedangkan mysqli tidak melakukan apa pun dengan DELIMITER di multi-query pernyataan, itu sebenarnya tidak melakukan apa pun dengan pembatas sama sekali dalam kueri normal, jadi masukkan saja pemicu Anda satu per satu:

$ cat i.php 
<?php
$mysqli = new mysqli('localhost', 'test', '', 'test');
$sql = "
CREATE TRIGGER `_foo_fulltext_update` AFTER UPDATE ON `foo`
  FOR EACH ROW BEGIN
    DELETE FROM `bar` WHERE `bar`=NEW.`bar`;
    INSERT INTO `bar` (bar) SELECT bar FROM `foo` WHERE `bar`=NEW.`bar`;
  END;
";
$mysqli->query($sql);
var_dump($mysqli->error);
$ php i.php 
string(0) ""
$ mysql
mysql> use test;

Database changed
mysql> show triggers\G
*************************** 1. row ***************************
             Trigger: _foo_fulltext_update
               Event: UPDATE
               Table: foo
           Statement: BEGIN
    DELETE FROM `bar` WHERE `bar`=NEW.`bar`;
    INSERT INTO `bar` (bar) SELECT bar FROM `foo` WHERE `bar`=NEW.`bar`;
  END
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: [email protected]
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan nilai kolom stempel waktu MySQL dengan SqlAlchemy

  2. Menggunakan perintah LOAD DATA INFILE dalam prosedur tersimpan

  3. tabel memperbarui ruang kosong saat pengguna tidak memasukkan apa pun ke kotak teks

  4. PHP dan MySQL:Membandingkan bulan dan hari dengan tahun yang dinamis

  5. Praktik terbaik untuk pencadangan MySQL