Java琐事

-I am not alone
posts - 54, comments - 30, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

    困扰两天的问题终于调试出来了,查了好多遍数据库偶然发现其中一个表名(order)与关键字 order(order by : 聚合函数)重复,

而造成在保存的时候插入不成功,这里完全排除映射文件的书写错误外,就要到数据库中找找端倪;

下面把其造成的部分错误代码贴在下面:

Servlet.service() for servlet default threw exception
com.mysql.jdbc.exceptions.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 'order (userid, orderdate) values (4, '2010-06-10 15:16:17')' at line 1
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
 at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
 at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
 at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
 at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
 at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
………………

    这里还有一个原因,本人是在通过视图界面建的表,创建期间 数据库 并不会提示错误,但如果是写入创建命令,就会有错误提示,

所以提醒大家用代码创建数据库 更不容易 出错,尤其对于数据库关键字不太熟悉的人

如果一定要用可视化界面,那就先请把关键字好好的数一遍


评论

# re: 小心数据库字段与关键字重复问题  回复  更多评论   

2010-09-01 19:33 by Rene
如果与关键字重复,把表名或者字段名用`号引起就可以了,比如
insert into `order` values (bla bla bla...);

# re: 小心数据库字段与关键字重复问题  回复  更多评论   

2010-09-01 22:28 by syg
@Rene不行,在创建的时候就会报告有错。
create table 'order'
(
……
)
是会提示有错的。但从视图界面就不会
这是Mysql,不知道sql server的试图界面会不会提示

# re: 小心数据库字段与关键字重复问题  回复  更多评论   

2010-09-01 22:34 by Rene
测试过了,是可以的。注意,不是单引号。是1左边的波浪号键打出来的引号。

# re: 小心数据库字段与关键字重复问题  回复  更多评论   

2010-09-03 17:04 by syg
@Rene
谢谢,我试了试。果然可以
但有些工具打不出来,不知道为什么。我在命令行里面测试的,通过

只有注册用户登录后才能发表评论。


网站导航: