サーチ…


主キーによるテーブルの作成

CREATE TABLE person (
    person_id BIGINT NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255),
    PRIMARY KEY (person_id)
);

あるいは、 PRIMARY KEY制約を列定義に直接配置することもできます。

CREATE TABLE person (
    person_id BIGINT NOT NULL PRIMARY KEY,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255)
);

表およびすべての列に小文字の名前を使用することをお勧めします。 Personなどの大文字の名前を使用する場合は、PostgreSQLが大文字と小文字を区別するため、各問合せでその名前を二重引用符( "Person" )で囲む必要があります。

テーブル定義を表示する

あなたのテーブルがあるデータベースに接続されたpsqlコマンドラインツールを開きます。次に、次のコマンドを入力します。

\d tablename

拡張情報タイプを取得するには

\d+ tablename

テーブルの名前を忘れた場合は、\ dをpsqlに入力して、現在のデータベースのテーブルとビューのリストを取得します。

選択からテーブルを作成する

personという表があるとします。

CREATE TABLE person (
    person_id BIGINT NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    age INT NOT NULL,
    PRIMARY KEY (person_id)
);     

あなたはこのように30以上の人々の新しいテーブルを作成することができます:

CREATE TABLE people_over_30 AS SELECT * FROM person WHERE age > 30;

未ログインのテーブルを作成する

未ログインのテーブルを作成して、テーブルをかなり高速化することができます。未記録のテーブルはwrite-aheadログをスキップwrite-aheadます。つまり、クラッシュセーフではなく、複製できません。

CREATE UNLOGGED TABLE person (
    person_id BIGINT NOT NULL PRIMARY KEY,
    last_name VARCHAR(255) NOT NULL,
    first_name VARCHAR(255),
    address VARCHAR(255),
    city VARCHAR(255)
);

他のテーブルを参照するテーブルを作成します。

この例では、ユーザーテーブルには代理店テーブルを参照する列があります。

CREATE TABLE agencies ( -- first create the agency table
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL
)

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  agency_id NOT NULL INTEGER REFERENCES agencies(id) DEFERRABLE INITIALLY DEFERRED -- this is going to references your agency table.
)


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow