0

PGAdminIII データベースを使用しています。

STOCKREGISTERという名前のテーブルが 1 つあります。このテーブルには、stockregisterId、applicationId、および dateの 3 つのフィールドで構成される複合主キーが含まれています。

STOCKREGISTERのフィールドstockregisterIdを参照する外部キー フィールドを持つ別のテーブルSTOCKを作成する必要があります。 STOCKテーブルを作成しようとすると、エラー メッセージが表示されます。 STOCKREGISTER" .私が次に取らなければならない別のステップ

この最初のテーブル

CREATE TABLE stock_register
(
  stock_register_id bigint NOT NULL,
  application_id bigserial NOT NULL,
  production_date date NOT NULL,
  opening_bal bigint DEFAULT 0,
  quantity_produced bigint,
  total_quantity bigint 
  CONSTRAINT primarykey PRIMARY KEY (stock_register_id, application_id, production_date),
  CONSTRAINT "foreignKey" FOREIGN KEY (application_id)
      REFERENCES application (application_id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)

以下は2番目のテーブルです。ここでは、stock_register_idを外部キーとして作成できません

    CREATE TABLE Stock
(
  stock_id bigint NOT NULL,
  stock_register_id bigint,
  dimension bigserial NOT NULL,
  CONSTRAINT "stockid" PRIMARY KEY (stock_id)
)
4

2 に答える 2

0

構文は次のようになります。

CREATE TABLE Stock
(
  stock_id bigint NOT NULL,
  stock_register_id bigint,
  dimension bigserial NOT NULL,
  CONSTRAINT "stockid"
    FOREIGN KEY (stock_id)
    REFERENCES stock_register (stock_register_id) 
)
于 2013-03-04T09:31:22.827 に答える
0
CREATE TABLE Stock
(
stock_id bigint NOT NULL,
stock_register_id bigint,
dimension bigserial NOT NULL,
CONSTRAINT primaryKey PRIMARY KEY (stock_id),
CONSTRAINT foreignKey FOREIGN KEY(stock_register_id)
REFERENCES stock_register (stock_register_id)
)

それはあなたが必要とするすべてであるべきです. また、外部キーを使用する場合は、DB テーブル エンジン、照合順序、および文字セットが一致していることを確認する必要があります。

一意の制約の問題については、テーブルstock_register_id内の PK に問題はないようです。stock_registerエラー メッセージの名前 STOCKREGISTER に基づいて、stock_register2 番目の Create ステートメントでテーブルが見つからなかったと思われます。

于 2013-11-27T10:24:43.680 に答える