[英]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.