2008-10-29 44 views
-1

有沒有人知道這個mysql的create語句有什麼問題?這個create table語句有什麼問題

編輯:現在發生的錯誤是附近:在行使用SQL美化雖然

還是錯誤修訂VARCHAR(20),paypal_accept TINYINT,pre_terminat」 4

感謝大家的幫助

CREATE TABLE AUCTIONS (
    ARTICLE_NO  VARCHAR(20), 
    ARTICLE_NAME VARCHAR(100), 
    SUBTITLE  VARCHAR(20), 
    CURRENT_BID  VARCHAR(20), 
    START_PRICE  VARCHAR(20), 
    BID_COUNT  VARCHAR(20), 
    QUANT_TOTAL  VARCHAR(20), 
    QUANT_SOLD  VARCHAR(20), 
    START   DATETIME, 
    ENDS   DATETIME, 
    ORIGIN_END  DATETIME, 
    SELLER_ID  VARCHAR(20), 
    BEST_BIDDER_ID VARCHAR(20), 
    FINISHED  VARCHAR(20), 
    WATCH   VARCHAR(20), 
    BUYITNOW_PRICE VARCHAR(20), 
    PIC_URL   VARCHAR(20), 
    PRIVATE_AUCTION VARCHAR(20), 
    AUCTION_TYPE VARCHAR(20), 
    INSERT_DATE  DATETIME, 
    UPDATE_DATE  DATETIME, 
    CAT_1_ID  VARCHAR(20), 
    CAT_2_ID  VARCHAR(20), 
    ARTICLE_DESC VARCHAR(20), 
    DESC_TEXTONLY VARCHAR(20), 
    COUNTRYCODE  VARCHAR(20), 
    LOCATION  VARCHAR(20), 
    CONDITION  VARCHAR(20), 
    REVISED   VARCHAR(20), 
    PAYPAL_ACCEPT TINYINT, 
    PRE_TERMINATED VARCHAR(20), 
    SHIPPING_TO  VARCHAR(20), 
    FEE_INSERTION VARCHAR(20), 
    FEE_FINAL  VARCHAR(20), 
    FEE_LISTING  VARCHAR(20), 
    PIC_XXL   TINYINT, 
    PIC_DIASHOW  TINYINT, 
    PIC_COUNT  VARCHAR(20), 
    ITEM_SITE_ID VARCHAR(20), 
    PRIMARY KEY (`ARTICLE_NO`)); 

的錯誤是現在線29

我實在看不出W¯¯附近的病情VARCHAR(20),修訂VARCHAR(20),PAYPAL_ACCEPT TI「帽子是錯的,TINYINT是否需要一個參數?

請問MYSQL列名必須是大寫嗎?

+0

如果你不知道如何格式化喬希,還有後的文本框上方的「代碼」按鈕(看起來像二進制)。選擇你的代碼並點擊那個按鈕。否則,空格未正確保存。 – 2008-10-29 14:57:38

+0

@John Sheehan - 刪除無關緊要的代碼。只顯示實際上需要實際幫助的實際問題的代碼。 – 2008-10-29 15:13:36

+0

謝謝大家提示。 – 2008-10-29 15:19:22

回答

3

我相信列名「START」和「CONDITION」是MySQL中的「特殊」字嗎?我所做的只是將美化代碼粘貼到查詢瀏覽器中,並注意到某些列名稱是「藍色」...:P

1

「VARCHAR(20)」不分配名稱。

5
watch VARCHAR(20), **????** VARCHAR(20), 
auction_type VARCHAR(20), 

在watch和auction_type之間,您錯過了列名稱。只有varchar(20)在那裏,刪除或添加缺少的列名稱。

0

有關失蹤字段名的答案是正確的(會投上一票,如果我有REP),但我也建議把下面的行後「cat_2_id VARCHAR(20)」:

PRIMARY KEY (`article_no`) 
2

提示:格式代碼的可讀性

我把你的代碼,並進行簡單格式化......

CREATE TABLE auctions (
    article_no  VARCHAR(20), 
    article_name  VARCHAR(100), 
    subtitle   VARCHAR(20), 
    current_bid  VARCHAR(20), 
    start_price  VARCHAR(20), 
    bid_count   VARCHAR(20), 
    quant_total  VARCHAR(20), 
    quant_sold  VARCHAR(20), 
    start    DATETIME, 
    ends    DATETIME, 
    origin_end  DATETIME, 
    seller_id   VARCHAR(20), 
    best_bidder_id VARCHAR(20), 
    finished   VARCHAR(20), 
    watch    VARCHAR(20), 
    buyitnow_price VARCHAR(20), 
    pic_url   VARCHAR(20), 
    private_auction VARCHAR(20), 
    auction_type  VARCHAR(20), 
    insert_date  DATETIME, 
    update_date  DATETIME, 
    cat_1_id   VARCHAR(20), 
    cat_2_id   VARCHAR(20), 
    article_desc  VARCHAR(20), 
    desc_textonly  VARCHAR(20), 
    countrycode  VARCHAR(20), 
    location   VARCHAR(20), 
    condition   VARCHAR(20), 
    revised   VARCHAR(20), 
    paypal_accept  TINYINT, 
    pre_terminated VARCHAR(20), 
    shipping_to  VARCHAR(20), 
    fee_insertion  VARCHAR(20), 
    fee_final   VARCHAR(20), 
    fee_listing  VARCHAR(20), 
    pic_xxl   TINYINT, 
    pic_diashow  TINYINT, 
    pic_count   VARCHAR(20), 
    item_site_id 
); 

...並馬上我可以看到item_site_id丟失的數據類型。

2

根據MySQL Reserved Keywords的列表,CONDITION是保留關鍵字,您必須將其轉義使用back-ticks)將其用作對象的名稱(例如表格,列等)。

我建議不要使用保留的關鍵字作爲列的名稱(即使您將其轉義),因爲這會在將來編寫查詢時導致各種問題。

3

檢查列名對MySQL的列表保留字:

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

你會看到CONDITION是一個保留字。您可以使用MySQL保留字作爲列名,但您必須將它們用引號括起來,以清楚地告訴MySQL您沒有在其常規用法中使用該單詞。

. . . 
LOCATION VARCHAR(20), 
`CONDITION` VARCHAR(20), 
REVISED  VARCHAR(20), 
. . .