Java 如果不存在记录,如何创建事件以删除表和其他事件
我正在创建一个带有事件的总线表来维护th数据。如果总线表中不存在记录,是否可以通过Java 如果不存在记录,如何创建事件以删除表和其他事件,java,mysql,sql,Java,Mysql,Sql,我正在创建一个带有事件的总线表来维护th数据。如果总线表中不存在记录,是否可以通过DropBusEvent事件删除表和autoDelete事件 stt.execute("CREATE TABLE IF NOT EXISTS bus" + "(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY," + "mac VARCHAR(30) NOT NULL UNIQUE,"
DropBusEvent
事件删除表和autoDelete
事件
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 IF NOT EXISTS AutoDelete "
+ "ON SCHEDULE EVERY 3 MINUTE "
+ "DO "
+ "DELETE FROM bus WHERE created_at < (NOW() - INTERVAL 3 MINUTE)");
// I tried this statement here but it does not work.
stt.execute("CREATE EVENT IF NOT EXITS DropBusTable "
+ "Do "
+ "DROP TABLES IF EXISTS bus");
stt.execute(“如果总线不存在,则创建表”
+(id INT(11)非空自动增量主键
+mac VARCHAR(30)非空唯一
+路由int(11)不为空
+纬度浮动(10,6)不为空
+经度浮点(10,6)不为空
+“在时间戳处创建(默认当前时间戳)”;
stt.execute(“如果不存在,则创建事件自动删除”
+“按计划每3分钟”
+“做”
+“从创建时的总线中删除(现在()-间隔3分钟)”;
//我在这里试过这个说法,但不起作用。
stt.execute(“如果不存在则创建事件退出DropBusTable”
+“做”
+“放置表格(如果存在总线”);
我发现您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解在第1行的“EXITS DropBusTableDROP TABLES IF EXISTS bus”附近使用的正确语法
您的语法有错误:
退出
而不是存在
排队
stt.execute("CREATE EVENT IF NOT EXITS DropBusTable "
有一个输入错误-出口应该是EXISTS@Richard:我仍然收到此错误
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解在第1行“EXITS DropBusTable Do DROP TABLES IF EXITS bus”附近使用的正确语法。此外,我只是设置事件,而没有检查表中是否存在记录?我如何设置事件来检查它?