通过 Schema API(文件 mymodule.install 位于文件夹站点 ll\modules\mymodule 中)。 mysql 中的触发器:
delimiter |
CREATE TRIGGER testref AFTER INSERT ON users
FOR EACH ROW BEGIN
INSERT INTO beep SET uid = NEW.uid;
END;
|
delimiter ;
没有专门的 API。
尝试http://api.drupal.org/api/drupal/includes--database.pgsql.inc/function/db_query/6
还请记住,不同数据库之间的触发器并未标准化。使用 hook_user() 来做到这一点将是一个更好的主意(或者可能作为后备)。
确保在查询函数的选项参数中传递
['allow_delimiter_in_query' => true]
,如下所示:
$database = \Drupal::database();
$database->query(
"
CREATE TRIGGER log_queue_backup AFTER DELETE on queue
FOR EACH ROW
BEGIN
IF (old.expire > UNIX_TIMESTAMP() OR old.name LIKE 'drupal_batch%') THEN
INSERT INTO queue_backup (name,expire,created)
VALUES ( old.name,old.expire,old.created );
END IF;
END#",[],['allow_delimiter_in_query' => true]
);