Обсуждение: Why can't I see the definition of my relations

Поиск
Список
Период
Сортировка

Why can't I see the definition of my relations

От
Andrew Falanga
Дата:
Hi,

I just finished defining a couple of tables with PgAdmin III and I'm
seeing something peculiar.  I'm not sure what the problem is.  When I
connect to the DB using psql and do "\d <table>" I get an error saying
that there's not relations by that name.  What?  When I do, "\d" I see
the tables listed.  Here's a sample of the output:

cgems=# \d
        List of relations
 Schema |  Name   | Type  | Owner
--------+---------+-------+-------
 public | Mineral | table | cgems
 public | Stone   | table | cgems
(2 rows)


cgems=# \d Stone
Did not find any relation named "Stone".

I'm guessing that it has something to do with permissions, but I'm
connecting using psql using the same UID that made the DB and the
tables.  If I connect to the DB using the UID of the table owner, I
get the same response.

Thanks for any help,
Andy

Re: Why can't I see the definition of my relations

От
"A. Kretschmer"
Дата:
In response to Andrew Falanga :
> Hi,
>
> I just finished defining a couple of tables with PgAdmin III and I'm
> seeing something peculiar.  I'm not sure what the problem is.  When I
> connect to the DB using psql and do "\d <table>" I get an error saying
> that there's not relations by that name.  What?  When I do, "\d" I see
> the tables listed.  Here's a sample of the output:
>
> cgems=# \d
>         List of relations
>  Schema |  Name   | Type  | Owner
> --------+---------+-------+-------
>  public | Mineral | table | cgems
>  public | Stone   | table | cgems
> (2 rows)
>
>
> cgems=# \d Stone
> Did not find any relation named "Stone".
>
> I'm guessing that it has something to do with permissions, but I'm

No, the reason is another:

test=# create table "Stone"(id serial);
NOTICE:  CREATE TABLE will create implicit sequence "Stone_id_seq" for serial column "Stone.id"
CREATE TABLE
test=*# \d Stone
Did not find any relation named "Stone".
test=*# \d "Stone"
                          Table "public.Stone"
 Column |  Type   |                      Modifiers
--------+---------+------------------------------------------------------
 id     | integer | not null default nextval('"Stone_id_seq"'::regclass)



You have to use the " if the table-name contains upper-case characters.


Andreas
--
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431  2EB0 389D 1DC2 3172 0C99

Re: Why can't I see the definition of my relations

От
Adrian Klaver
Дата:
On Monday 12 July 2010 10:18:07 pm A. Kretschmer wrote:

>
> No, the reason is another:
>
> test=# create table "Stone"(id serial);
> NOTICE:  CREATE TABLE will create implicit sequence "Stone_id_seq" for
> serial column "Stone.id" CREATE TABLE
> test=*# \d Stone
> Did not find any relation named "Stone".
> test=*# \d "Stone"
>                           Table "public.Stone"
>  Column |  Type   |                      Modifiers
> --------+---------+------------------------------------------------------
>  id     | integer | not null default nextval('"Stone_id_seq"'::regclass)
>
>
>
> You have to use the " if the table-name contains upper-case characters.
>
>
> Andreas

Just for completeness, it is the quoted table name that causes the case
sensitivity. If you do as below than the table name is folded to lower case.

test=> create table Stone(id serial);
NOTICE:  CREATE TABLE will create implicit sequence "stone_id_seq" for serial
column "stone.id"
CREATE TABLE
test=> \d Stone
                         Table "public.stone"
 Column |  Type   |                     Modifiers
--------+---------+----------------------------------------------------
 id     | integer | not null default nextval('stone_id_seq'::regclass)




--
Adrian Klaver
adrian.klaver@gmail.com

Re: Why can't I see the definition of my relations

От
Andrew Falanga
Дата:
On Jul 13, 9:12 am, adrian.kla...@gmail.com (Adrian Klaver) wrote:
> On Monday 12 July 2010 10:18:07 pm A. Kretschmer wrote:
>
>
>
>
>
> > No, the reason is another:
>
> > test=# create table "Stone"(id serial);
> > NOTICE:  CREATE TABLE will create implicit sequence "Stone_id_seq" for
> > serial column "Stone.id" CREATE TABLE
> > test=*# \d Stone
> > Did not find any relation named "Stone".
> > test=*# \d "Stone"
> >                           Table "public.Stone"
> >  Column |  Type   |                      Modifiers
> > --------+---------+------------------------------------------------------
> >  id     | integer | not null default nextval('"Stone_id_seq"'::regclass)
>
> > You have to use the " if the table-name contains upper-case characters.
>
> > Andreas
>
> Just for completeness, it is the quoted table name that causes the case
> sensitivity. If you do as below than the table name is folded to lower case.
>
> test=> create table Stone(id serial);
> NOTICE:  CREATE TABLE will create implicit sequence "stone_id_seq" for serial
> column "stone.id"
> CREATE TABLE
> test=> \d Stone
>                          Table "public.stone"
>  Column |  Type   |                     Modifiers
> --------+---------+----------------------------------------------------
>  id     | integer | not null default nextval('stone_id_seq'::regclass)
>
> --
> Adrian Klaver
> adrian.kla...@gmail.com
>
> --
> Sent via pgsql-general mailing list (pgsql-gene...@postgresql.org)
> To make changes to your subscription:http://www.postgresql.org/mailpref/pgsql-general

Thank you both for you help.  I look forward to accessing the table
tonight when I get home.

For my own sake, would there happen to be any documentation on-line
that I could read up on regarding this?  (The PostgreSQL website
perhaps?  Is this discussed in their documentation?)

Thanks,
Andy

Re: Why can't I see the definition of my relations

От
Adrian Klaver
Дата:
On 07/13/2010 09:27 AM, Andrew Falanga wrote:
> On Jul 13, 9:12 am, adrian.kla...@gmail.com (Adrian Klaver) wrote:

>
> Thank you both for you help.  I look forward to accessing the table
> tonight when I get home.
>
> For my own sake, would there happen to be any documentation on-line
> that I could read up on regarding this?  (The PostgreSQL website
> perhaps?  Is this discussed in their documentation?)
>
> Thanks,
> Andy
>

www.postgresql.org/docs/8.4/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

Go to end of the above section for documentation on case folding.

--
Adrian Klaver
adrian.klaver@gmail.com