sql >> Databasteknik >  >> RDS >> Mysql

Hur skapar man mysql-händelse i en procedur eller trigger?

Ursäkta bror, men utifrån vad jag har läst är det du föreslår inte möjligt. Jag tror inte att man kan skapa en händelse med en trigger. Vilket är en bummer eftersom det skulle vara användbart för mig också.

Det skulle dock vara lättare att skapa händelsen när raden för varje strid skapas. Hör är ett exempel på kod som jag hittade från en kille som förklarar hur händelser fungerar.

<?php
// establish database connection and filter incoming data
// ...
// insert blog post with pending status, get id assigned to post
$query = "INSERT INTO blog_posts (id, title, post_text, status) 
VALUES (NULL, :title, :postText, 'pending')";
$stm = $db->prepare($query);
$stm->execute(array(":title" => $title, ":postText" => $text));
$id = $db->lastInsertId();

// is this a future post?
if (isset($_POST["schedule"], $_POST["time"])) {
$scheduleDate = strtotime($_POST["time"]);

$query = "CREATE EVENT publish_:id
ON SCHEDULE AT FROM_UNIXTIME(:scheduleDate)
DO
  BEGIN
    UPDATE blog_posts SET status = 'published' WHERE id = :id;
  END";
$stm = $db->prepare($query);
$stm->execute(array(":id" => $id, ":scheduleDate" => $scheduleDate));
}
// this is not a future post, publish now
else {
$query = "UPDATE blog_posts SET status = 'published' WHERE id = :id";
$stm = $db->prepare($query);
$stm->execute(array(":id" => $id));
}

Så skapa i princip händelsen när du lägger till en strid på bordet.




  1. FIL-behörighet till MySQL-session/användare

  2. Ansluter till Informix (IDS12 DB) i IRI Workbench

  3. Råd om att använda pivottabellen i Oracle

  4. kan inte ladda oci8 -> Allvarligt fel:Anrop till odefinierad funktion oci_connect()