relation does not exist error

Started by Simon Wittberover 21 years ago5 messagesgeneral
Jump to latest
#1Simon Wittber
simonwittber@gmail.com

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=#

#2Michael Fuhr
mike@fuhr.org
In reply to: Simon Wittber (#1)
Re: relation does not exist error

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/

#3Doug McNaught
doug@mcnaught.org
In reply to: Simon Wittber (#1)
Re: relation does not exist error

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

#4Simon Wittber
simonwittber@gmail.com
In reply to: Doug McNaught (#3)
Re: relation does not exist error

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.

#5Ian Harding
iharding@tpchd.org
In reply to: Simon Wittber (#4)
Re: relation does not exist error

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