postgreSQL 创建user表时引发的表名大写与双引号问题

在postgreSQL里面,user是一个保留字。

如果你想创建user表,你可能会遭遇一些问题!

如图:

  

可以看到,这里是无法创建user表的。

你可能会说,我只是没有加双引号""来括住大写的表名而已,没错!

当我用""括住大写的表名的时候,问题解决了!

如图:

  

但是,事情还没完!

如果我不是创建user表,而是其他的,如Useless表呢?

如图:

  

会看到Useless表是可以创建的,只不过这里表名被自动转换为了小写。

这里应该是遵循了标准SQL的规定。

如果我想查询USER表,我该怎么写它的表名呢?

如图:

  

你会发现,结果是不同的!

所以这里就可以得出以下结论:

当你要创建的表的表名是需要大写的,那你就用双引号""括起来;

以后只要是和这个表有关的操作,都要用""把表名给括起来,注意是英文状态的双引号!



转载请注明出处: http://www.cnblogs.com/ficow/p/6612484.html

时间: 2024-08-02 18:24:53

postgreSQL 创建user表时引发的表名大写与双引号问题的相关文章

关于oracle sql语句查询时表名和字段名要加双引号的问题

oracle初学者一般会遇到这个问题. 用navicat可视化创建了表,可是就是不能查到! 后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系统会自动

建表时和建表后的级联更新和删除

--对表建立级联更新或级联删除方法--1.在建表时直接定义级联更新和级联删除create table pktable(ID int primary key,SCD int, SName varchar(20)) create table fktable(ID int primary key,SCD int references pktable(ID) on delete cascade on update cascade, Age tinyint) insert into pktable val

创建maven工程时总是带有后缀名Maven Webapp解决办法

做项目时突然遇到了一个新问题,从前没有的,今天不知怎么了突然有了这个问题,maven创建web项目时多出了后缀名maven webapp ,很碍眼,而且访问路径还得删了,这个后缀名才可访问,所以找了答案,跟大家分享下,也可便于自己记忆深刻. 原本的样子是这样的,如下图: 想要的样子是,只有demo3这个名,不要后面的Maven Webapp . 解决方法是: 在新建工程时,写工程名称那一步,选中下面的Advanced中Name template:--->artifactId,选中这个单词后便成功

python 字符串组成MySql 命令时,字符串含有单引号或者双引号导致出错解决办法

引用自:https://blog.csdn.net/zhaoya_huangqing/article/details/48036839 一.在组成SQL语句并发送命令时完全按照Python中的样式去传递,这样在MySql中执行的时候就会遇到错误的命令,由单引号或者双引号引起.因此应该在组成字符串之前,手动将字符串中的单引号或者双引号之前加上反斜杠,这样在组合成字符串的时候,MySql就能够识别了. 例如: str="""select count(*) from %s wher

Oracle设置创建表时的默认表空间

在导入/创建Oracle数据库表,有时我们会检查发现,导入/创建后表,所创建的表空间并非是我们想要的默认表空间.此时我们需要先修改用户的默认表空间,再导入的方式来解决该问题. alter user 你的用户名 default tablespace 你想默认的表空间 例如:alter user platform default tablespace platform 执行生效后,此时,再导入脚本或者创建表,就会在指定的默认空间下了

创建Hive/hbase相关联的表异常

hive> CREATE TABLE hperson(id string, name string,email string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":id,cf1:name,cf2:email") TBLPROPERTIES ("hbase.table.

MySQL建表时列名同保留字重复问题解决办法

建表时遇到遇到属性名同MySQL的保留字相同导致不能建表的问题,如下SQL语句: CREATE TABLE TBL_ACCOUNT_FROZEN_RECORD ( ID BIGINT NOT NULL AUTO_INCREMENT, TRADE_FLOW_ID VARCHAR(60) NOT NULL, ACCOUNT_NO VARCHAR(32) NOT NULL, INITIATOR VARCHAR(16) NOT NULL, OPERATE_TYPE VARCHAR(32) NOT NUL

解决MySQL联表时出现字符集不一样

mysql 建表时都会设置表的字符集和排序规则,通常是 utf8,不过我这边习惯建表的字符集是 utf8mb4,排序规则是 utf8mb4_unicode_ci.有些 utf8mb4 的表默认排序规则是 utf8mb4_general_ci,导致在联表操作时会报错误: Illegal mix of collations 其实这个就是联表时由于表的排序规则不一致才会引起的,这个可以通过将表的排序规则改成一致来解决. 但是有时表已经在线上了,无法修改,而现在又要急着用,可以通过下面的方法: UPDA

oracle 创建表加双引号作用

Oracle建的表名和字段名都会自动给我们转换为大写的 双引号在Oracle中表示区分大小写,Oracle是严格区分大小写的,未使用双引号时默认全部大写.可能很多人都会误认为oracle是不区分大小写的,原因是我们在写查询语句的时候,大小写无所谓,结果都是一样的,这只是个表面现象,只要你不使用双引号表示区分大小写,oracle会默认把你写的脚本全部转换为大写的. create table "authorISBN"  (   "authorID"