web-dev-qa-db-ja.com

postgreSQLの特定のスキーマにテーブルを追加するにはどうすればよいですか?

私はこれを持っています:

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+にはまだ「人」がいます。

それで、どのようにこのテーブルを必要なスキーマに入れるのですか?ありがとう。

7
Jane Doe

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スキーマで必要な場合は、ステートメットを変更する必要があります。

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 |
14
Vao Tsun

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

データベースを選択して右クリックし、[クエリツール]オプションを選択して、特定のスキーマのテーブルを作成します。

0
Praveen Kumar C