开发者

PostgreSQL and pgadmin3.exe

I am trying to start playing with postgres and found a very strange thing, I created a table using pgadminIII named testtable and added couple of column then I wrote following query in query editor

SELECT * from 开发者_如何学JAVAtesttable;

it responded no table found with such name, then after that I tried

select * from "testtable"

with quotes(later one) it worked, then I dropped the table and created the table using script editor, with same name making it sure no quotes are around the name, then both query started working, I can't understand stand what that exactly mean, even if I write "teablename" in create table statement quotes shouldn't become the part of the table name.

Also, how can I make sure while using pgAdmin graphical user interface that all object get created without quote (of course if above problem because of that)?

Update: Environment Info

OS => Windows Server 2008 x64, Postgres => 9.0.3-2 x64, pgAdmin => > Version 1.12.2 (March 22, 2011, rev:> REL-1_12_2)


Did you use the new table dialog the first time? You shouldn't use quotes in the dialog as pgAdmin will insert all necessary quotes.

Edit I discovered something today what is a little weird and might explain what happened to you.

When you do not quote a table name the table name it is converted to lowercase. So if you do

CREATE TABLE TestTable ( ... );

Your table will be called testtable What happens when you start to query the table is this:

SELECT * FROM TestTable; -- succeeds looks for testtable
SELECT * FROM testtable; -- succeeds
SELECT * FROM "TestTable"; -- fails because case doesn't match

Now if you had done:

CREATE TABLE "TestTable" ( ... );

Your table would actually be called TestTable with the case preserved and the result is

SELECT * FROM TestTable; -- fails looks for testtable
SELECT * FROM testtable; -- fails
SELECT * FROM "TestTable"; -- succeeds
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜