我想在postgresql中的数据库中创建一个简单的表。
从我有CREATE TABLE will create a new, initially empty table in the current database. The table will be owned by the user issuing the command.
的文档
使用此命令
CREATE TABLE *table_name*;
我以为我得到了一个新的空表。但是psql会抛出ERROR: syntax error at or near ";"
。当我使用空参数列表时,如:
CREATE TABLE *table_name*();
psql告诉我该表是通过
创建的postgres=# create table *table_name*();
CREATE TABLE
但\ l显示未显示新创建的表。并且也无法使用psql -d table_name -U user_name 登录。有人可以帮忙吗?
答案 0 :(得分:4)
您似乎对术语数据库和表
感到困惑但是
\l
没有显示新创建的表。
当然\l
不会向您显示该表,因为\l
会列出数据库而不是关系。要查看所有表格,您需要使用\d
或\dt
。
也无法使用
登录psql -d table_name -U user_name
当然这是不可能的,因为-d
参数用于指定数据库,而不是表
答案 1 :(得分:3)
您可以拥有一个没有列的表,甚至包含一些行:
<script type="text/javascript">
var els = document.getElementsByClassName('input-validation-error');
for(var x=0; x<els.length; x++){
if( els[x].value == '' ){
els[x].parentNode.parentNode.style.backgroundColor = '#f00';
}
}
</script>
输出:
CREATE TABLE nocolumn (dummy INTEGER NOT NULL PRIMARY KEY)
;
INSERT INTO nocolumn(dummy) VALUES (1);
ALTER TABLE nocolumn
DROP COLUMN dummy;
\d nocolumn
SELECT COUNT(*) FROM nocolumn;
答案 2 :(得分:1)
一小时前我建议添加至少一个这样的列:
create table tab1 (columnname varchar(42) not null)
但是,正如评论员所说,这似乎是不必要。 (我认为在这里保留错误的答案而不是删除它,以防止其他人提出相同的建议)