sql >> データベース >  >> RDS >> Mysql

プロシージャまたはトリガー内にmysqlイベントを作成するにはどうすればよいですか?

    申し訳ありませんが、私が読んでいることから、あなたが提案していることは不可能です。トリガーでイベントを作成することはできないと思います。それは私にも役立つので、これは残念です。

    ただし、各戦闘の行が作成されると、イベントを作成する方が簡単です。 Hearは、イベントがどのように機能するかを説明している人から見つけたコードの例です。

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

    したがって、基本的には、テーブルにバトルを追加するときにイベントを作成します。




    1. phpを使用してmysqlテーブルにタイムスタンプを保存する

    2. SQLのDateTimeフィールドの時間部分

    3. 'false'はmysqlの文字列と一致しますか?

    4. アドホック接続文字列とMSAccessの異種クエリ