0

所以我有一个带有 MySQL 5.6.37 引擎的 AWS RDS 实例,我正在使用 MySQL 5.6 版在 sqlfiddle.com 上检查我的代码语法。

我在 sqlfiddle 中输入的代码是

CREATE TABLE Teacher_Times(
  TEACHER_ID TEXT,
  BEG_TIME TIME,
  END_TIME TIME,
  DAYS VARCHAR(9) DEFAULT "MTWRF",
  TYPE VARCHAR(11) DEFAULT "unavailable");

我连接到 rds 的代码使用的 jdbc 配置与这个人的堆栈溢出帖子非常相似:无法设置 spring.datasource.type

在我的代码中,我有

    result =
            "CREATE TABLE Teacher_Times(\n" +
            "   TEACHER_ID TEXT,\n" +
            "   BEG_TIME TIME,\n" +
            "   END_TIME TIME,\n" +
            "   DAYS VARCHAR(9) DEFAULT \"MTWRF\",\n" +
            "   TYPE VARCHAR(11) DEFAULT \"unavailable\");";
    jdbc_t.execute(result);
    result = "";

这种进行查询的通用格式在许多其他地方都有效,我不知道 AWS 的东西是否相关。

确切的错误是“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在“MTWRF”行附近使用的正确语法5"

4

1 回答 1

1

看起来启用了 ANSI_QUOTES模式。我可以重现错误

SET sql_mode = 'ANSI_QUOTES';

http://rextester.com/JXV28208

尝试改用单引号:

CREATE TABLE Teacher_Times(
  TEACHER_ID TEXT,
  BEG_TIME TIME,
  END_TIME TIME,
  DAYS VARCHAR(9) DEFAULT 'MTWRF',
  TYPE VARCHAR(11) DEFAULT 'unavailable');
于 2018-02-03T01:53:14.947 回答