sql >> Database teknologi >  >> RDS >> Mysql

Hvordan opretter man mysql-begivenhed i en procedure eller trigger?

Undskyld bror, men ud fra det, jeg har læst, er det, du foreslår, ikke muligt. Jeg tror ikke, man kan oprette en begivenhed med en trigger. Hvilket er en nederdel, fordi det også ville være nyttigt for mig.

Det ville dog være nemmere at oprette begivenheden, når rækken for hver kamp er oprettet. Hør er et eksempel på en kode, jeg fandt fra en fyr, der forklarer, hvordan begivenheder fungerer.

<?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å lav dybest set begivenheden, når du tilføjer en kamp til bordet.




  1. Sådan returneres alle upålidelige udenlandske nøglebegrænsninger i SQL Server (T-SQL-eksempel)

  2. MySQL - Russiske tegn vises forkert

  3. Er det muligt at have en indekseret visning i MySQL?

  4. Fuldtekstsøgninger i MySQL:The Good, the Bad and the Ugly