Postgre细节问题汇总(持续更新)

Postgre Sql 细节问题汇总

  • 问题1

        表中有个别字段名字是关键字,如value、key等关键字,致使不能用sql语句操做数据库。sql

      解决方案:这个因数据库类型不一样而各有所异。一种是在这个字段名上加中括号[],如[key];另外一种是加上双引号"",如"key";数据库

  • 问题2

       单引号''和双引号“”的区别post

insert into test.column_key_tb (id,key,value,extra_info) values(2,"hello",'world','program starts!');//出错

      解决方案:是由于双引号会被识别为字段名,而单引号才是表示一个字符串。因此,把“hello”改成'hello'测试

  • 问题3

    ibatis+postgre中,插入一条记录时返回该记录在数据库中的id。spa

    解决方案:根据网上资料,有两种说法能够实现。postgresql

    第一种以下,可是亲自测试了后(个人ibatis版本是2.0),发现不识别属性keyProperty和属性useGenerateKeys。code

<insert id="xxx" parameterType="map" keyProperty="id" useGeneratedKeys="true">
    insert xxxx 
 </insert>

    第二种以下:这种能够实现,能识别属性,而且利用序列来返回最新序列号,也就是刚刚插入那条记录的id。索引

<selectKey resultClass="Integer" keyProperty="id">  
     	SELECT currval('testtb_id_seq') as id;  
</selectKey>
  • 问题4

    查看Postgresql安装下面的base文件夹的数字命名文件夹对应于哪一个数据库。采用以下命令:字符串

 select *,oid  from pg_database;

直接在postgresql 的SQL Shell中输入上面命令,便可查看数据库对应数字文件夹,其中OID就是对应数字文件夹。io

  • 问题5

     建立索引时,若是表名是关键字,那么须要给表名加上双引号“”,如location是关键字,那么写法以下:

create index FK_xxxx on "location" (ins_fk) ;
相关文章
相关标签/搜索