$ sudo -u postgres psql
postgres=# \c students
You are now connected to database "students" as user "postgres".
students=# create table student(name char(30), gender char(30), birthday date)
students-# \dt
No relations found.
students-# insert into student value ('Tom', 'male', '11-21-2000')
students-# \dt
No relations found.
Run Code Online (Sandbox Code Playgroud)
我想知道为什么\dt在 database 下不显示任何表students,即使在我创建一个新表student并在表中插入一条记录之后?
谢谢。
我发现这有帮助:
\dt+ *
Run Code Online (Sandbox Code Playgroud)
仅显示 pg_catalog 中的表和名称
我还发现这将显示该数据库中的所有表:
select * from pg_catalog.pg_tables;
Run Code Online (Sandbox Code Playgroud)
然后查看我的表及其架构前缀,我可以再次显示我的表,如下所示:
\dt+ <the_schema_name>.*
Run Code Online (Sandbox Code Playgroud)
密切注意提示:
students=# create ...
students-# \dt
No relations found.
students-# insert ...
students-# \dt
No relations found.
Run Code Online (Sandbox Code Playgroud)
请注意,它以 开头=#,然后变为-#。该-#提示的意思是“我等着你来完成陈述”。然后,如果我们查看您的create和insert“语句”,我们会注意到它们没有以分号结尾,因此它们无法进入数据库。该\...命令是直接执行psql,使他们不需要分号终止,他们只要你打执行return(或者enter,如果你有一个的键盘之一)。
(该#信息意味着你要为数据库中的“根”用户,非root用户得到>之间的区别->和=>更容易看到没有这些额外的行#。)
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |