我知道有很多关于这个问题的问题,但我仍然没有找到解决我问题的方法。 我在变量中构建PreparedStatement并传递变量,但错误(未知列''字段列表'中的checkedAt')是持久的。
我的代码:
PreparedStatement stmt = conn.prepareStatement(
"IF NOT EXISTS (SELECT * FROM `suites` WHERE name = ?)
THEN INSERT INTO `suites` (`name`, `description`, `metaData`, `active`, `checkedAt`, `createdAt`) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
ELSE UPDATE `suites` SET `name` = ?, `description` = ?, `metaData` = ?, `active`= ?, `checkedAt` = CURRENT_TIMESTAMP WHERE `name`= ?; END IF;");
stmt.setString(1, suite.get("SuiteName"));
...
stmt.setInt(9, 1);
stmt.setString(10, suite.get("SuiteName"));
stmt.execute();
列checkedAt
在数据库中可用并已填充。该问题仅出现在语句的UPDATE部分(ELSE子句)中。
有人能为我提供解决方案吗? 谢谢!