我有这个:
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+
在公开场合仍有“人”。
那么,我如何将此表放入我想要的模式中?感谢。
答案 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)