Обсуждение: relation does not exist error

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

relation does not exist error

От
Simon Wittber
Дата:
I'm evaluationg PostgreSQL 8.0 beta 5 for a new development project.

I've created a user 'simon' and a database named 'WMSDV'.

I've created some tables (see below) and assigned arwdRxt privledges
to the 'simon' user.

However, when i use psql, I am unable to select these tables. I
receive a 'relation "'tabename' does not exist" error. I'm completely
new to PostgreSQL, and this problem has me stumped.

Can anyone point me in the right direction?

Sw.

WMSDV=# \dt
         List of relations
 Schema |   Name    | Type  | Owner
--------+-----------+-------+-------
 public | Customers | table | simon
 public | Persons   | table | simon
(2 rows)

WMSDV=# select * from Customers;
ERROR:  relation "customers" does not exist
WMSDV=# select * from public.Customers;
ERROR:  relation "public.customers" does not exist
WMSDV=#

Re: relation does not exist error

От
Michael Fuhr
Дата:
On Fri, Dec 03, 2004 at 11:01:16AM +0800, Simon Wittber wrote:

>          List of relations
>  Schema |   Name    | Type  | Owner
> --------+-----------+-------+-------
>  public | Customers | table | simon
>  public | Persons   | table | simon
> (2 rows)
>
> WMSDV=# select * from Customers;
> ERROR:  relation "customers" does not exist

See the "Identifiers and Key Words" section in the "SQL Syntax" of
the PostgreSQL documentation.  Pay particular attention to what it
says about case sensitivity, case folding, and quoting of identifiers.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: relation does not exist error

От
Doug McNaught
Дата:
Simon Wittber <simonwittber@gmail.com> writes:

> WMSDV=# \dt
>          List of relations
>  Schema |   Name    | Type  | Owner
> --------+-----------+-------+-------
>  public | Customers | table | simon
>  public | Persons   | table | simon
> (2 rows)
>
> WMSDV=# select * from Customers;
> ERROR:  relation "customers" does not exist

Identifiers get mashed to lower case unless you quote them:

SELECT * FROM "Customers";

-Doug

Re: relation does not exist error

От
Simon Wittber
Дата:
Wow, 4 responses in 10 minutes to my newbie question. Thanks guys.

I'm coming from a SQL Server background, so quoting table names didn't
immediately spring to mind.

I can see support will not be a problem. 10 out of 10.

Sw.

Re: relation does not exist error

От
"Ian Harding"
Дата:
The answer is in the question!  It's the difference between Customers
and customers.

PostgreSQL folds identifiers to lower case if not double quoted.

The best solution is to use lower case consistently.  The alternative is
to use double quotes consistently.

Try SELECT * FROM "Customers"; and you will be happy again.

Ian Harding
Programmer/Analyst II
Tacoma-Pierce County Health Department
iharding@tpchd.org
Phone: (253) 798-3549
Pager: (253) 754-0002

>>> Simon Wittber <simonwittber@gmail.com> 12/02/04 7:01 PM >>>
I'm evaluationg PostgreSQL 8.0 beta 5 for a new development project.

I've created a user 'simon' and a database named 'WMSDV'.

I've created some tables (see below) and assigned arwdRxt privledges
to the 'simon' user.

However, when i use psql, I am unable to select these tables. I
receive a 'relation "'tabename' does not exist" error. I'm completely
new to PostgreSQL, and this problem has me stumped.

Can anyone point me in the right direction?

Sw.

WMSDV=# \dt
         List of relations
 Schema |   Name    | Type  | Owner
--------+-----------+-------+-------
 public | Customers | table | simon
 public | Persons   | table | simon
(2 rows)

WMSDV=# select * from Customers;
ERROR:  relation "customers" does not exist
WMSDV=# select * from public.Customers;
ERROR:  relation "public.customers" does not exist
WMSDV=#

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend