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

Come creare un evento mysql all'interno di una procedura o trigger?

Scusa fratello ma da quello che ho letto quello che stai proponendo non è possibile. Non credo che tu possa creare un evento con un trigger. Il che è un peccato perché sarebbe utile anche per me.

Sarebbe comunque più semplice creare l'evento quando viene creata la riga per ogni battaglia. Ascolta è un esempio di codice che ho trovato da un ragazzo che spiega come funzionano gli eventi.

<?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));
}

Quindi, in pratica, crea l'evento quando aggiungi una battaglia al tavolo.