Обсуждение: DROP TABLE Appears to Fail
I cannot recall issuing a DROP TABLE command from psql that did not work, but seem to have this as a new experience. When I look at the database table list with '\d' I see public | station_type | table | rshepard public | station_type_statype_seq | sequence | rshepard and I want to drop and recreate these with a typo fixed. But, the drop commands do not appear to work: # drop table station_type # \d public | station_type | table | rshepard public | station_type_statype_seq | sequence | rshepard I fail to see what I'm doing incorrectly and would appreciate a clue stick to set me on the proper path. TIA, Rich
Silly question, but did you try it with a semicolon after the drop table?
--
Rick Genter
rick.genter@gmail.com
# drop table station_type;
I've noticed that if you are in the middle of a statement and issue a \ command, psql ignores the SQL you've typed in and just does the \ command.
On Tue, Jun 28, 2011 at 3:34 PM, Rich Shepard <rshepard@appl-ecosys.com> wrote:
I cannot recall issuing a DROP TABLE command from psql that did not work,
but seem to have this as a new experience.
When I look at the database table list with '\d' I see
public | station_type | table | rshepard
public | station_type_statype_seq | sequence | rshepard
and I want to drop and recreate these with a typo fixed. But, the drop
commands do not appear to work:
# drop table station_type
# \d
public | station_type | table | rshepard
public | station_type_statype_seq | sequence | rshepard
I fail to see what I'm doing incorrectly and would appreciate a clue stick
to set me on the proper path.
TIA,
Rich
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
--
Rick Genter
rick.genter@gmail.com
Hi Rich, it might be sufficient to add a semicolon to your drop statement: # drop table station_type; HTH, Andy ----- Ursprüngliche Mail ----- > I cannot recall issuing a DROP TABLE command from psql that did not > work, > but seem to have this as a new experience. > > When I look at the database table list with '\d' I see > > public | station_type | table | rshepard > public | station_type_statype_seq | sequence | rshepard > > and I want to drop and recreate these with a typo fixed. But, the drop > commands do not appear to work: > > # drop table station_type > > # \d > > public | station_type | table | rshepard > public | station_type_statype_seq | sequence | rshepard > > I fail to see what I'm doing incorrectly and would appreciate a clue > stick > to set me on the proper path. > > TIA, > > Rich > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general
On Wed, 29 Jun 2011, Andy Firel wrote: > it might be sufficient to add a semicolon to your drop statement: > # drop table station_type; Andy, Actually, that's not true. On a whim I tried that and psql complained about a syntax error at the initial 'd'. Rich
On Tue, 28 Jun 2011, Rick Genter wrote: > Silly question, but did you try it with a semicolon after the drop table? Rick, See my answer to Andy: that's incorrect syntax and psql complains. > I've noticed that if you are in the middle of a statement and issue a \ > command, psql ignores the SQL you've typed in and just does the \ command. But there is no continuation command just 'drop table <tablename>'. Thanks, Rich
After issuing the \d you are still in the middle of your command. Witness the following copy/paste of a terminal session:
--
Rick Genter
rick.genter@gmail.com
bash-3.2$ ./psql
Password:
psql (8.4.4)
Type "help" for help.
postgres=# create table foo (bar int);
CREATE TABLE
postgres=# drop table foo
postgres-# \d
List of relations
Schema | Name | Type | Owner
--------+------+-------+----------
public | foo | table | postgres
(1 row)
postgres-# drop table foo;
ERROR: syntax error at or near "drop"
LINE 2: drop table foo;
^
postgres=# drop table foo;
DROP TABLE
postgres=#
This is on 8.4.4. The semicolon is required.
On Tue, Jun 28, 2011 at 3:53 PM, Rich Shepard <rshepard@appl-ecosys.com> wrote:
On Tue, 28 Jun 2011, Rick Genter wrote:Rick,Silly question, but did you try it with a semicolon after the drop table?
See my answer to Andy: that's incorrect syntax and psql complains.But there is no continuation command just 'drop table <tablename>'.I've noticed that if you are in the middle of a statement and issue a \
command, psql ignores the SQL you've typed in and just does the \ command.
Thanks,
Rich
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
--
Rick Genter
rick.genter@gmail.com
> postgres=# drop table foo > postgres-# \d specifically note the prompt. the -# means you're in the middle of a command. =# means its ready for a new command. as another example... pierce=# create table foo (id integer); CREATE TABLE pierce=# drop pierce-# table pierce-# foo pierce-# ; DROP TABLE pierce=# -- john r pierce N 37, W 122 santa cruz ca mid-left coast
On Tue, 28 Jun 2011, Rick Genter wrote: > After issuing the \d you are still in the middle of your command. Witness > the following copy/paste of a terminal session: Ah, so! I didn't see this. Thank you very much, Rich