关于数据库名、表名中出现中划线(减号)的问题
最后更新:2024-03-12 18:56:38
|
状态:未完成
数据库名、表名中出现中划线(减号)时在jdbc是容易被误当成减号处理引起语法异常。
尽量不要用中划线,大部分数据库会这样规定:名称可以由任意宇母、阿拉伯数字、下面线(_)和“$”组成,可以使用上述的任意宇符开头,但不能使用单独的数字
所以中划线就不是个合法的名称字符
如果必须要用的话可以打开界定符开关
注意这里的界定符只会添加到自动生成的SQL上,而不会处理在java或配置文件中写的原生SQL
打开界定符后要注意:大部分数据库会因为加了界定符而区分大小写,所以写SQL时要大小写要与数据库保持严格一致,
如果数据库设置了不区分大小写,user和User都是一样的,但`user`和`User`就不一样了,写错了的话 SQL就异常了
尽量不要用中划线,大部分数据库会这样规定:名称可以由任意宇母、阿拉伯数字、下面线(_)和“$”组成,可以使用上述的任意宇符开头,但不能使用单独的数字
所以中划线就不是个合法的名称字符
如果必须要用的话可以打开界定符开关
这样在处理表名时会当成一个词处理。
启动类中ConfigTable.IS_SQL_DELIMITER_OPEN = true
或配置文件中:anyline.sql-delimiter-open = true注意这里的界定符只会添加到自动生成的SQL上,而不会处理在java或配置文件中写的原生SQL
打开界定符后要注意:大部分数据库会因为加了界定符而区分大小写,所以写SQL时要大小写要与数据库保持严格一致,
如果数据库设置了不区分大小写,user和User都是一样的,但`user`和`User`就不一样了,写错了的话 SQL就异常了