Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我试图在RDS上运行的MySQL代码出现语法错误,但在同一版本的语法检查器中,它运行良好_Mysql_Double Quotes_Ansi Sql_Sql Mode - Fatal编程技术网

我试图在RDS上运行的MySQL代码出现语法错误,但在同一版本的语法检查器中,它运行良好

我试图在RDS上运行的MySQL代码出现语法错误,但在同一版本的语法检查器中,它运行良好,mysql,double-quotes,ansi-sql,sql-mode,Mysql,Double Quotes,Ansi Sql,Sql Mode,因此,我有一个带有MySQL 5.6.37引擎的AWS RDS实例,我正在使用MySQL 5.6版本检查sqlfiddle.com上代码的语法 我在SQLFIDLE中输入的代码是 CREATE TABLE Teacher_Times( TEACHER_ID TEXT, BEG_TIME TIME, END_TIME TIME, DAYS VARCHAR(9) DEFAULT "MTWRF", TYPE VARCHAR(11) DEFAULT "unavailable");

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

我在SQLFIDLE中输入的代码是

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配置非常类似于这家伙的堆栈溢出帖子:

在我的代码中,我有

    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服务器版本对应的手册,了解第5行“MTWRF”附近使用的正确语法,看起来模式已启用。我可以用计算机重现错误

SET sql_mode = 'ANSI_QUOTES';
请尝试改用单引号:

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

当我使用单引号时,错误不会改变。它甚至将错误表示为接近“MTWRF”,该值仍然具有双精度quotes@AviRudich你不觉得奇怪吗?试试这几天VARCHAR100默认值如果你没有在错误消息中看到这个,那么你正在执行其他我做过的事情,我看到了错误消息。我所能想到的是,jdbc.execute可能会取代mean的单引号,只是为了我尝试将sql_模式设置为kicks,但它没有改变任何东西对不起,jdbc帮不了你。禁用ANSI_引号。