为什么 `\dt` 在数据库下不显示任何 table?
why does `\dt` not show any table under a database?
$ 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.
我想知道为什么 \dt
没有在数据库 students
下显示任何 table,即使在我创建了一个新的 table student
之后我在 table?
中插入一条记录
谢谢。
密切注意提示:
students=# create ...
students-# \dt
No relations found.
students-# insert ...
students-# \dt
No relations found.
请注意,它以 =#
开头,然后变为 -#
。 -#
提示的意思是"I'm waiting for you to complete a statement"。然后,如果我们查看您的 create
和 insert
"statements",我们会注意到 它们没有以分号结尾,因此它们不会进入数据库。 \...
命令直接由 psql
执行,因此它们不需要分号终止符,它们会在您点击 return[ 时立即执行=34=](如果你有那些键盘之一,则输入)。
(#
表示您是数据库的 "root" 用户,非根用户获得 >
以及 ->
和 [=如果没有 #
中的所有额外行,21=] 更容易看到。)
我发现这有帮助:
\dt+ *
仅显示 pg_catalog
中的表和名称
我还发现这将显示该数据库中的所有表:
select * from pg_catalog.pg_tables;
然后查看我的表及其架构前缀,我可以像这样再次显示我的表:
\dt+ <the_schema_name>.*
$ 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.
我想知道为什么 \dt
没有在数据库 students
下显示任何 table,即使在我创建了一个新的 table student
之后我在 table?
谢谢。
密切注意提示:
students=# create ...
students-# \dt
No relations found.
students-# insert ...
students-# \dt
No relations found.
请注意,它以 =#
开头,然后变为 -#
。 -#
提示的意思是"I'm waiting for you to complete a statement"。然后,如果我们查看您的 create
和 insert
"statements",我们会注意到 它们没有以分号结尾,因此它们不会进入数据库。 \...
命令直接由 psql
执行,因此它们不需要分号终止符,它们会在您点击 return[ 时立即执行=34=](如果你有那些键盘之一,则输入)。
(#
表示您是数据库的 "root" 用户,非根用户获得 >
以及 ->
和 [=如果没有 #
中的所有额外行,21=] 更容易看到。)
我发现这有帮助:
\dt+ *
仅显示 pg_catalog
中的表和名称我还发现这将显示该数据库中的所有表:
select * from pg_catalog.pg_tables;
然后查看我的表及其架构前缀,我可以像这样再次显示我的表:
\dt+ <the_schema_name>.*