0

A、B、Cの3つのテーブルがあります。テーブルAを作成したいのですが、3つの列が必要で、最初の1つはPRIMARY KEY。です。

1)2番目の列を作成する方法は、表Bを参照しています。

2)3番目のwithは、テーブルCAid=C.idの「C.id」行への参照です。

CREATE TABLE A
(
    id SERIAL PRIMARY KEY,
    // ? - reference to table B
    // ? - reference to C.id row. A.id = C.id
)

データベース:postgresql

4

1 に答える 1

1

mysqlデータベースを使用していると思います。

CREATE TABLE A
(
    id INT NOT NULL PRIMARY KEY,
    b_id INT NOT NULL,
    c_id INT NOT NULL,
    FOREIGN KEY (b_id) REFERENCES B (id),
    FOREIGN KEY (c_id) REFERENCES C (id)
) TYPE = INNODB;

postgresqlを使用するための更新:

CREATE TABLE "A"
(
   id integer NOT NULL, 
   b_id integer NOT NULL, 
   c_id integer NOT NULL, 
   CONSTRAINT id PRIMARY KEY (id), 
   CONSTRAINT b_id FOREIGN KEY (b_id) REFERENCES "B" (id) 
      ON UPDATE NO ACTION ON DELETE NO ACTION, --with no action restriction
   CONSTRAINT c_id FOREIGN KEY (c_id) REFERENCES "C" (id) 
      ON UPDATE CASCADE ON DELETE CASCADE  --with cascade restriction
) 
WITH (
  OIDS = FALSE
)
;
ALTER TABLE "C" OWNER TO postgres;

于 2012-11-24T21:13:19.993 に答える