2012-09-18 5 views
6

時々私のコマンドpsqlは効果がないようです。どんな考え?psqlでは、コマンドによっては何の効果もないのはなぜですか?

library_development-> drop table Pavan 
:私はを使用してテーブル Pavanを落とした。この後D

   List of relations 
Schema |  Name  | Type | Owner 
--------+-------------------+-------+---------- 
public | Pavan    | table | postgres 
public | schema_migrations | table | sai 
(2 rows) 

\

library_development =>:

以下は、データベースlibrary_development内のすべてのテーブルのリストです

しかし、を示すような表がドロップされ、そのショーされていません。また、

library_development=> \d 
       List of relations 
Schema |  Name  | Type | Owner 
--------+-------------------+-------+---------- 
public | Pavan    | table | postgres 
public | schema_migrations | table | sai 
(2 rows) 

  1. 私はWindowsでPostgreSQLのを使用しています。コンソールをクリアするコマンドはありますか(Oracleのcl scrのように)?

  2. DMLスクリプトで作業するときにPostgreSQLで実行する必要がある「コミット」という概念はありますか?

+0

セミコロン 'ドロップテーブルPavanで終了するようにしてください;' – edze

+0

それはあなたのPostgreSQLのバージョンに言及するのは良い考えです。このような質問を投稿するとき。しかし、明らかに何が起こっているかを示すために+1。 –

答えて

14

ステートメントはセミコロンで終わります。

psqlでは、セミコロンを使わずにEnterキーを押すと、次の行にステートメントが続き、実行しないでクエリバッファに追加します。プロンプトがdbname=>からdbname->に変更され、継続行にあることがわかります。私は、セミコロンなしでEnterキーを押した後、regress-#プロンプトがノーアクションが取られるか

regress=> DROP TABLE sometable 
regress-> \r 
Query buffer reset (cleared). 
regress=> DROP TABLE sometable; 
ERROR: table "sometable" does not exist 
regress=> 

注意してください。テーブルsometableが存在しないため、ステートメントが実行された場合はエラーが報告されます。

次に、次の行に\rの使用を参照してください。クエリバッファがクリアされます。バッファがクリアされると、プロンプトはregress=#に戻ります。これは、部分的なステートメントがもうバッファされていないためです。

これは、ステートメントが行に分割する方法を示しています。

regress=> DROP TABLE 
regress-> sometable 
regress-> ; 
ERROR: table "sometable" does not exist 

紛らわしいものはpsqlバックスラッシュが\dのようなコマンドということですが終了セミコロンない、改行で終了しているので、Enterキーを押すと、彼らは実行を行う。これは、文を書くときにテーブル定義を見たい(言いたい)ときに便利ですが、初心者には少し混乱します。あなたの追加質問については

  1. 私はまだそれを発見していないWindows用psqlで「クリアスクリーン」コマンドがある場合。 Linuxでは、私は他のreadlineを使用するプログラムと同じように、control-Lを使用します。 Windowsではおそらく\! clsが動作しますが、試していません。

  2. PostgreSQLのDDLはトランザクションです。トランザクションをBEGIN、DDLを発行し、COMMITトランザクションを有効にすることができます。 DDLを明示的なトランザクションで実行しないと、すぐに有効になります。

+0

どうもありがとうございます。 – Pawan

関連する問題