sql >> Database >  >> RDS >> Mysql

Hoe maak je een mysql-gebeurtenis binnen een procedure of trigger?

Sorry broeder, maar van wat ik heb gelezen is wat u voorstelt niet mogelijk. Ik denk niet dat je een evenement kunt maken met een trigger. Dat is jammer, want het zou ook nuttig zijn voor mij.

Het zou echter gemakkelijker zijn om het evenement te maken wanneer de rij voor elk gevecht is gemaakt. Hoor is een voorbeeld van een code die ik heb gevonden van een man die uitlegt hoe gebeurtenissen werken.

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

Creëer dus eigenlijk het evenement wanneer je een gevecht aan de tafel toevoegt.




  1. Aantal overeenkomende woorden tellen

  2. Hoe sessievariabelen in JDBC-url correct door te geven?

  3. Gegevens kopiëren tussen verschillende databases (beide worden ondersteund door jdbc)

  4. Tuples worden niet opeenvolgend in de databasetabel ingevoegd?