簡體   English   中英

創建事件以刪除表中的記錄

[英]Creating event to delete records in the table

我正在嘗試使我的mysql事件正常工作,但是我遇到的問題是正在創建沒有autoDelete事件的總線表,並且沒有出現任何錯誤。 我通過在SQL瀏覽器中執行以下語句show events在phpmyadmin中檢查了我的表,因為我說總線表在那里,所以我得到的結果為empty results

我在phpmyadmin sql瀏覽器中檢查了EVENT語法代碼,它有效嗎?

DatabaseMetaData dbm = con.getMetaData();
        ResultSet tables = dbm.getTables(null, null, "bus", null);
        if (tables.next()) {
            // here if the table exist just update data. I have the most of my code her.
            return status;
        } else {
            // Create bus table
            stt.execute("CREATE TABLE IF NOT EXISTS bus"
                    + "(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,"
                    + "mac VARCHAR(30) NOT NULL UNIQUE,"
                    + "route int(11) NOT NULL,"
                    + "latitude FLOAT(10,6) NOT NULL,"
                    + "longitude FLOAT(10,6) NOT NULL,"
                    + "created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)");

        stt.execute("CREATE EVENT AutoDelete"
                    + "ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 MINUTE "
                    + "DO "
                    + "DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 3 MINUTE)");
            insert_update_data(mac, route, latD, longD, con);
            return status;

        }

嘗試在事件名稱后放置空格

"CREATE EVENT AutoDelete "

我認為您的代碼當前正在創建一個類似於以下內容的字符串:

CREATE EVENT AutoDeleteON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 MINUTE DO DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 3 MINUTE)

雖然我很驚訝這沒有引發SQLException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM