sql >> Database >  >> RDS >> Mysql

Mysql-trigger maken via PHP?

Terwijl de mysqli doet niets met DELIMITER in multi-query statements, doet het eigenlijk helemaal niets met scheidingstekens in normale zoekopdrachten, dus schuif je triggers er één voor één in:

$ 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. MySQL transactie raadsel

  2. Hoe kan ik verbindingen poolen met psycopg en gevent?

  3. het krijgen van foutargument '0' is buiten bereik

  4. Selecteer uit mysql in variabele VB.NET