关于MySQL desc关键字误用为自定义属性引发的错误
2017-03-27 16:18
218 查看
项目使用hibernate操作数据库,但是今天Tomcat启动的时候一直报错,
view
source
print?
注:***为被我省略的字段信息描述
解决方法:既然说是SQL语句有问题,但是想一个简单的SQL CREATE TABLE语句能有什么错误呢。
一个字段一个字段往里面加,进行增量测试。其他字段都没有问题,发现desc varchar(255)有问题。
为什么呢,把desc改成description居然就没有问题,就想到desc会不会是关键字什么的。果然是,
desc是用于排序的关键字,平时编程习惯用desc来作为“描述”字段,直接通过hibernate将属性映射
为数据库字段,就处问题了。
引以为戒,千万不能把关键字作为自己的属性进行操作!
最好的解决方法是不用desc表示字段名,用全称description代替。
另外一种解决方法是在desc外面加反引号(`),注意desc外面加的不是单引号,而是键盘左上角数字键1前的那个键。
修改表字段长度:
[sql] view
plain copy
alter table apply_order modify column `desc` varchar(1000) not null;
view
source
print?
1 | 报错信息: |
2 | 报错的SQL语句: |
3 | [Unsuccessful schema statement: create table *** (***, desc varchar (255), endDate datetime, *****] |
4 |
5 |
6 | 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 'desc varchar(255), ' at line 1 |
解决方法:既然说是SQL语句有问题,但是想一个简单的SQL CREATE TABLE语句能有什么错误呢。
一个字段一个字段往里面加,进行增量测试。其他字段都没有问题,发现desc varchar(255)有问题。
为什么呢,把desc改成description居然就没有问题,就想到desc会不会是关键字什么的。果然是,
desc是用于排序的关键字,平时编程习惯用desc来作为“描述”字段,直接通过hibernate将属性映射
为数据库字段,就处问题了。
引以为戒,千万不能把关键字作为自己的属性进行操作!
最好的解决方法是不用desc表示字段名,用全称description代替。
另外一种解决方法是在desc外面加反引号(`),注意desc外面加的不是单引号,而是键盘左上角数字键1前的那个键。
修改表字段长度:
[sql] view
plain copy
alter table apply_order modify column `desc` varchar(1000) not null;
相关文章推荐
- 关于MySQL desc关键字误用为自定义属性引发的错误
- 关于MySQL desc关键字误用为自定义属性引发的错误
- Android填坑之旅(第十四篇)关于软键盘弹出未及时隐藏导致自定义View的onMeasure方法测量错误引发的血案
- 一个关于C++ Inline关键字的引发的一个错误
- 关于asp.net错误信息"不能编辑已锁定的 ConfigurationSection 属性。"
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- 关于ASP.NET访问ACCESS数据的“不能打开注册表关键字”80004005错误的探讨
- 关于ListBox控件的一个很逗的错误:“设置DataSource属性后无法修改项集合。”
- 关于自定义实体集合绑定datagrid控件在进行编辑时出现错误"向原始数据存储区提交行时出错"的原因.
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- 关于sqlserver连接远程数据库没有权限引发错误的捕捉
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- 引发关于SQL Server 2008 R2连接Oracle客户端和网络软件的错误
- 关于自定义属性面板的问题
- 关于解决属性文件中文编码错误不能保存的问题
- 关于Webpart自定义属性
- 关于:Update后引发 并发冲突:DeleteCommand 影响 0 个记录 的错误
- 关于“所有记录中均未找到搜索关键字”的错误
- 统一绑定下拉框控件;设置同一类型的控件的属性;自定义错误处理类
- 关于 webservice 或者 wcf 提供的方法,在引用后类属性后自动添加 k__BackingField 关键字的说明