-1

これは私のスキーマです:

CREATE TABLE item (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    title varchar(60) NOT NULL,
    description varchar(900) NOT NULL,
    company_id integer NOT NULL REFERENCES company (id),
    date datetime NOT NULL,
    source_id integer NOT NULL REFERENCES source (id),
    link varchar(255) NOT NULL,
    location_id integer NOT NULL REFERENCES location (id)
);

CREATE TABLE location (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    coordinate varchar(255) NOT NULL,
    location_id integer NOT NULL REFERENCES country (id)
);

CREATE TABLE country (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(255) NOT NULL
);

CREATE TABLE company (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(60) NOT NULL,
);

CREATE TABLE source (
    id integer NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name varchar(60) NOT NULL,
);

http://sqlfiddle.comを入力して [ビルド スキーマ] をクリックすると、4 行目に無効な構文があることがわかります。エラーは表示されません。誰か光を当ててください。

また、何か悪いことをしたり、悪い決断をしたりした場合は、お知らせください。

4

4 に答える 4

4

2 つの不完全なコンマがあります。「CREATE TABLE company」「CREATE TABLE source」の最後にあるもの。場所の前に国を作成します。

CREATE TABLE company (
    id SERIAL PRIMARY KEY,
    name varchar(60) NOT NULL
);

CREATE TABLE country (
    id SERIAL PRIMARY KEY,
    name varchar(255) NOT NULL
);

CREATE TABLE location (
    id SERIAL PRIMARY KEY,
    name varchar(255) NOT NULL,
    coordinate varchar(255) NOT NULL,
    location_id integer NOT NULL REFERENCES country (id)
);

CREATE TABLE source (
    id SERIAL PRIMARY KEY,
    name varchar(60) NOT NULL
);

CREATE TABLE item (
    id SERIAL PRIMARY KEY,
    title varchar(60) NOT NULL,
    description varchar(900) NOT NULL,
    company_id integer NOT NULL REFERENCES company (id),
    date timestamp NOT NULL,
    source_id integer NOT NULL REFERENCES source (id),
    link varchar(255) NOT NULL,
    location_id integer NOT NULL REFERENCES location (id)
);
于 2012-12-03T15:59:15.810 に答える
2

他の場所で参照する前に、テーブルを作成する必要があります。次の順序でテーブルを作成します: Source、Company、Country、Location、Item

最初の 3 つは任意の順序で実行できますが、Country は Location の前に、Location、Source、および Company は Item の前に配置する必要があることに注意してください。

また、Source と Company の定義の最後に 2 つの余分なコンマがあります。それらを削除する必要があります。

于 2012-12-03T15:59:34.387 に答える
1
  1. countryテーブルを参照する前にテーブルを作成してlocationください。
  2. ,の定義のダングリングを削除します。companysource
于 2012-12-03T15:57:18.010 に答える
1

最初にテーブルを作成し、country次に、最後に を作成する必要があります。locationcompanysourceitem

于 2012-12-03T15:59:44.433 に答える