sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit událost mysql uvnitř procedury nebo triggeru?

Promiň bratře, ale z toho, co jsem četl, to, co navrhuješ, není možné. Nemyslím si, že můžete vytvořit událost se spouštěčem. Což je průšvih, protože by to bylo užitečné i pro mě.

Bylo by však jednodušší vytvořit událost, když je vytvořena řada pro každou bitvu. Hear je příklad nějakého kódu, který jsem našel od chlapíka, který vysvětluje, jak události fungují.

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

Takže v podstatě vytvořte událost, když přidáte bitvu na stůl.




  1. Rails:Žádný fond připojení pro ActiveRecord::Base

  2. JSON_INSERT() – Vložení hodnot do dokumentu JSON v MySQL

  3. Spouštěče kódu Django nebo MySQL

  4. Práce se spouštěči v databázi MySQL – návod