数据库列名使用了关键字怎么办?

  • Oracle 中只能用双引号"包围关键字。但由于Oracle中双引号内的字符串是区分大小写的,而不管创建表还是查询时,Oracle都会把字段名转成全部大写,所以,除非创建表时双引号内的字段名就是全大写的,否则以后查询时SQL语句都必须加双引号,若不加则Oracle内部会把字段名转成全大写从而提示“无效的标识符”。同理,查询普通字段也可以通过加双引号查询得出,但双引号内的字段名必须是全大写,例如SELECT "ANY_FIELD_NAME" FROM TableName
  • SQL Server 中可以用方括号[]或双引号"包围关键字。字段名任何情况下都不区分大小写。
  • MySQL 中用`(backticks)把表和列名名字围起来。字段名也不区分大小写。
时间: 2024-10-12 08:26:11

数据库列名使用了关键字怎么办?的相关文章

数据库列名和系统关键字冲突问题

最近在mssql数据库内处理job时发现其他数据库的列名和mssql的系统关键字冲突解决办法是列明使用[]      也可以全部使用,即:[dbname].[tablename].[columnname] 当然这样就麻烦了

mysql数据库字段命名与关键字冲突之坑

mysql> SELECT desc,status,play_time,push_type, 'interval' FROM cms_push; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 700 Current database: xxx_cms ERROR 1064 (42000): You have an error in your S

MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致

MyBatis系列二  之   数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致         使用ResultMap节点配置信息  在映射文件中  mapper根节点下配置ResultMap节点信息 <resultMap type="Student" id="studentMapper"> <result column="sname" property="stunam

数据库列名使用关键词解决方法

在Oracle 中只能用双引号 " 包围关键字. 但由于Oracle中双引号内的字符串是区分大小写的,而不管创建表还是查询时,Oracle都会把字段名转成全部大写,所以,除非创建表时双引号内的字段名就是全大写的,否则以后查询时SQL语句都必须加双引号,若不加则Oracle内部会把字段名转成全大写从而提示"无效的标识符". 同理,查询普通字段也可以通过加双引号查询得出,但双引号内的字段名必须是全大写,例如SELECT "ANY_FIELD_NAME" FRO

ADOX创建ACCESS数据库列名的数据类型

Type   属性             指示   Parameter.Field   或   Property   对象的操作类型或数据类型. 设置和返回值 设置或返回下列   DataTypeEnum   值之一.相应的   OLE   DB   类型标识符在下表的说明栏的括号中给出.有关   OLE   DB   数据类型的详细信息,请参阅第   10   章和<OLE   DB   程序员参考>的附录   A. 常量   说明   AdArray   与其他类型一起加入逻辑   OR

java查询数据库列名,输出需要编写的代码

程序开发中有时候会有一些列特别多的数据库表,这时候一个一个绑定t数据列就比较麻烦,可以通过查询数据库的列名,直接输出出来,可以通过输出的列,添加不同的内容输出 /** * 此方法是按照查询的结果集分离表名,所以是按顺序显示的 * @param tableName 数据库表名字 * @author txf */ public void getAllUsers( String tableName){ Connection conn = DbConnection.getConn(); String s

Java之数据库表字段有关键字报错java.sql.SQLSyntaxErrorException

前两天在开发中遇到一个坑,本来我在快乐的做着增删改查,然后悲剧发生了,在查询数据库的过程中,报了java.sql.SQLSyntaxErrorException: 经过排查,是因为数据库表字段中存在关键字: 下面重点来了,我用的是mybatis-plus,我的解决方案如下: 在这个字段上增加@TableField(value="`key`")注解即可,用``将字段包起来,是英文半角状态下的数字1前面的那个符号. 再运行起来就没问题啦 one more thing: 1.如果你用的是jp

数据库使用 关键字 作为列名

什么情况下会使用关键字作为列名呢,我自己感觉 1.对应数据库下不知道  对应的列名 是关键字(没有试过创建表的时候,列名指定为关键字会不会报错) 2.数据库迁移,从一个数据库迁移到另一个类型的数据库,原来数据库平台下,不是关键字的列名 成了关键字. SQL Server下,如果更新关键字列,可以使用双引号或者中括号. Oracle下使用双引号. MySQL下用 ` (backticks)把表和列名名字围起来.字段名也不区分大小写. 原文地址:https://www.cnblogs.com/niu

关于mybatis中的实体类属性与数据库中的列名不一致的两种解决方法

1.我们都知道,在mybatis中写实体类的时候,是按照数据库中的列名来给实体类定义属性的,举个例子: public class User implements Serializable { private Integer id; private String username; private String address; private String sex; private Date birthday; } 2.但是,如果我们在定义实体类的时候,实体类中的属性与数据库列名不一致呢?比如: