如何在postgreSQL中将表添加到特定模式?

时间:2017-01-19 09:06:25

标签: sql postgresql schema

我有这个:

DROP SCHEMA Lab1 CASCADE;
CREATE SCHEMA Lab1;
CREATE TABLE Lab1.PERSONS(
SSN   INT primary key,
Name CHARACTER (30),
HouseId  INT,
ApartmentNumber  INT ,
Salary   DECIMAL (5, 2)  
);

但这不起作用,它可以很好地创建模式,但然后在一个奇怪的地方创建表,在那里无法查看(例如\d+),事实上,我知道的唯一方法它存在的是,如果你试图删除“lab1”模式,它将抛出一个错误,说明lab1正在使用模式。

我尝试设置lab1架构的默认路径:ALTER ROLE -myusername- SET SEARCH_PATH to Lab1;

但这也不起作用,\d+在公开场合仍有“人”。

那么,我如何将此表放入我想要的模式中?感谢。

2 个答案:

答案 0 :(得分:10)

试过runnig:

DROP SCHEMA Lab1 CASCADE;
CREATE SCHEMA Lab1;
CREATE TABLE Lab1.PERSONS(
SSN   INT primary key,
Name CHARACTER (30),
HouseId  INT,
ApartmentNumber  INT ,
Salary   DECIMAL (5, 2)  
);
t=# \dt+ lab1.persons
 lab1   | persons | table | postgres | 0 bytes |

如您所见,该表是在lab1架构中创建的。如果您想在Lab1架构中使用它,则应修改statemet:

t=#     DROP SCHEMA "Lab1" CASCADE;
ERROR:  schema "Lab1" does not exist
t=#     CREATE SCHEMA "Lab1";
CREATE SCHEMA
t=#     CREATE TABLE "Lab1".PERSONS(
t(#     SSN   INT primary key,
t(#     Name CHARACTER (30),
t(#     HouseId  INT,
t(#     ApartmentNumber  INT ,
t(#     Salary   DECIMAL (5, 2)
t(#     );
CREATE TABLE
t=#     \dt+ "Lab1".persons
 Lab1   | persons | table | postgres | 0 bytes |

答案 1 :(得分:0)

Choose the database and right click then choose the option "Query tool" and in which you want to create a table in particular a particular schema

选择数据库并单击鼠标右键,然后选择选项“查询工具”,并在其中选择要创建特定于特定模式的表的