【问题标题】:MySQL syntax error on table 'tbl_maticula'表 'tbl_maticula' 上的 MySQL 语法错误
【发布时间】:2014-11-03 15:06:08
【问题描述】:

我的 SQL 表存在语法问题。页面上的错误说:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“tbl_matricula”附近使用正确的语法

表格中有以下几行:

CREATE TABLE tbl_matricula (
datasituacao date NOT NULL,
idatividade int(11) NOT NULL,
idaluno int(11) NOT NULL,
defsituacao int(11) NOT NULL,
PRIMARY KEY (idaluno)
)  ENGINE=InnoDB DEFAULT CHARSET=latin1;

错误的堆栈跟踪:

INFO  com.cs.sig.framework.model.db.DBConnectorFactory [68]: CREATING DIRECT DBCONNECTION     (NOT USING POOL).
ERROR org.apache.jsp.admin.matriculaList_jsp [302]: You have an error in your SQL syntax;         check the manual that corresponds to your MySQL server version for the right syntax to use     near 'tbl_matricula' at line 1
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL     syntax; check the manual that corresponds to your MySQL server version for the right syntax     to use near 'tbl_matricula' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
at com.mysql.jdbc.Util.getInstance(Util.java:382)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1474)
at com.cs.sig.framework.model.db.DBQuery.execute(DBQuery.java:82)
at com.cs.sig.framework.model.definition.DynamicDefinition.loadWithQuery(DynamicDefinition.java:223)
at com.cs.sig.framework.model.definition.DynamicDefinition.<init>(DynamicDefinition.java:105)
at com.cs.sig.shared.definition.DSituacao.<init>(DSituacao.java:26)
at com.cs.sig.shared.definition.DSituacao.getInstance(DSituacao.java:19)
at org.apache.jsp.admin.matriculaList_jsp._jspService(matriculaList_jsp.java:182)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

谁能帮我解决这个问题?我是初学者,所以......如果问题有任何问题,请见谅。

【问题讨论】:

  • 问题不在于SQL语句。它在 SQL Fiddle (sqlfiddle.com/#!2/a434a) 上运行良好。也许还有一些其他字符潜入您的代码中的语句中。 (另外,我删除了 sql-server 标记,因为错误引用了 MySQL。)
  • 好的。我会尝试追踪是否有任何不合适的角色。
  • PRIMARY KEY 之前的逗号应该在那里吗?
  • 我昨天得到了一些帮助。有人建议我将“idauluno”列更改为“id”,并排除“tbl_matricula”和“(”之间的空格。但没有任何变化。有任何线索吗?

标签: java mysql syntax


【解决方案1】:

我发现了问题。它在 mysql 工作台配置上。

我已在终端中运行脚本“tables.sql”以及系统所需的其他 .sql 文件,并且运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2016-02-22
    • 1970-01-01
    • 2014-04-09
    • 2016-02-07
    相关资源
    最近更新 更多