2012-12-03 34 views
-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當我把它並單擊構建模式。我可以看到沒有錯誤,請問能否請任何人點亮燈光?

此外,如果我做得不好或做出任何不好的決定,請讓我知道。

+3

這是mysql還是postgresql? – danielrsmith

+0

嗨。對不起,我沒有意識到它有所作爲。這是postgresql。 –

回答

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) 
); 
+0

感謝您的幫助,但這仍然會產生相同的錯誤 –

+0

我修復了它,請重試。 –

+0

你能告訴我這是什麼,所以下次我可以學習嗎? –

1
  1. 在引用它之前創建countrylocation表。
  2. 刪除companysource的定義中的懸掛,
2

您必須先創建表格,然後才能在其他地方引用它們。在此爲了創建表: 來源, 公司, 國家, 位置, 項目

請注意,您可以按任何順序做了前三,但國家一定要來的位置之前,和地點,來源,以及公司必須在項目之前。

在Source和Company的定義末尾還有兩個逗號。你必須刪除這些。

1

首先,你需要創建表country然後location其次companysource並在最後item