有时我的命令psql
似乎没有效果.知道为什么吗?
以下是数据库中所有表的列表library_development
:
library_development=> \d
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+----------
public | Pavan | table | postgres
public | schema_migrations | table | sai
(2 rows)
Run Code Online (Sandbox Code Playgroud)
在此之后我删除的表Pavan
使用:
library_development-> drop table Pavan
Run Code Online (Sandbox Code Playgroud)
但是表格没有被删除,其显示如下:
library_development=> \d
List of relations
Schema | Name | Type | Owner
--------+-------------------+-------+----------
public | Pavan | table | postgres
public | schema_migrations | table | sai
(2 rows)
Run Code Online (Sandbox Code Playgroud)
也:
我在Windows中使用PostgreSQL.是否有任何清除控制台的命令(如Oracle中的cl scr)?
在使用DML脚本时,我是否需要在Postgresql中执行"提交"的概念?
Cra*_*ger 25
声明以分号结尾.
在psql
,没有分号的情况下按Enter键会将语句继续到下一行,将您写入查询缓冲区的内容添加到查询缓冲区而不是执行它.您会注意到提示符从更改dbname=>
为dbname->
,表示您处于延续行.
regress=> DROP TABLE sometable
regress-> \r
Query buffer reset (cleared).
regress=> DROP TABLE sometable;
ERROR: table "sometable" does not exist
regress=>
Run Code Online (Sandbox Code Playgroud)
请注意,在没有分号的情况下按Enter键后,提示符将更改为regress-#
并且不执行任何操作.没有表sometable
,所以如果语句运行,则会报告错误.
接下来,看下\r
一行的使用情况?这会清除查询缓冲区.请注意,提示会更改回regress=#
清除缓冲区的时间,因为不再缓冲部分语句.
这显示了如何跨行分割语句:
regress=> DROP TABLE
regress-> sometable
regress-> ;
ERROR: table "sometable" does not exist
Run Code Online (Sandbox Code Playgroud)
令人困惑的是,psql
反斜杠命令就像\d
是换行符终止,而不是分号终止,所以当你按Enter键时它们会运行.当你想在编写语句时(比如说)查看表定义时,这很方便,但对于新手来说这有点令人困惑.
至于你的其他问题:
如果psql
Windows中有"清除屏幕"命令,我还没有找到它.在Linux上我只使用control-L,与任何其他使用readline的程序相同.在Windows \! cls
中将工作.
PostgreSQL中的DDL是事务性的.您可以BEGIN
进行事务,发出一些DDL以及COMMIT
使事务生效的事务.如果您没有在显式事务中执行DDL,则它会立即生效.
小智 9
我刚刚遇到了类似的事情,但原因不同。
我试图使用 dropdb 命令,但我看到的就像我的命令没有效果(提示符的更改意味着我的命令在缓冲区中,但这不是这里的问题):
postgres=# dropdb databasename
postgres-#
Run Code Online (Sandbox Code Playgroud)
像 dropdb 这样的命令应该在 psql 外部输入。我一直在做的是:
$ psql postgres
postgres=# dropdb databasename
Run Code Online (Sandbox Code Playgroud)
请注意,第一个命令在 Bash 中并触发 psql,第二个命令在 psql 中发送。
正确的方法是直接在 bash(控制台)中发送命令:
$ dropdb databasename
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7891 次 |
最近记录: |