mysql> CREATE TABLE ORDER(
    -> O_ID int UNIQUE,
    -> O_D_ID int UNIQUE,
    -> O_W_ID int UNIQUE,
    -> O_C_ID int UNIQUE,
    -> O_ENTRY_D time,
    -> O_CARRIER_ID int,
    -> O_OL_CNT int,
    -> O_ALL_LOCAL int,
    -> PRIMARY KEY(O_W_ID, O_D_ID, O_ID),
    -> FOREIGN KEY (O_W_ID) REFERENCES CUSTOMER  (C_W_ID),
    -> FOREIGN KEY (O_D_ID) REFERENCES CUSTOMER  (C_D_ID),
    -> FOREIGN KEY (O_C_ID) REFERENCES CUSTOMER  (C_ID)
    -> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER(
O_ID int UNIQUE,
O_D_ID int UNIQUE,
O_W_ID int UNIQUE,
O_C_ID int UNIQUE,' at line 1
MYSQL

解决方案 »

  1.   

    mysql> desc CUSTOMER;
    +----------------+--------------+------+-----+---------+-------+
    | Field          | Type         | Null | Key | Default | Extra |
    +----------------+--------------+------+-----+---------+-------+
    | C_ID           | int(11)      | NO   | PRI | 0       |       |
    | C_D_ID         | int(11)      | NO   | PRI | 0       |       |
    | C_W_ID         | int(11)      | NO   | PRI | 0       |       |
    | C_FIRST        | varchar(16)  | YES  |     | NULL    |       |
    | C_MIDDLE       | varchar(2)   | YES  |     | NULL    |       |
    | C_LAST         | varchar(16)  | YES  |     | NULL    |       |
    | C_STREET_1     | varchar(20)  | YES  |     | NULL    |       |
    | C_STREET_2     | varchar(20)  | YES  |     | NULL    |       |
    | C_CITY         | varchar(20)  | YES  |     | NULL    |       |
    | C_STATE        | varchar(2)   | YES  |     | NULL    |       |
    | C_ZIP          | varchar(9)   | YES  |     | NULL    |       |
    | C_PHONE        | varchar(16)  | YES  |     | NULL    |       |
    | C_SINCE        | time         | YES  |     | NULL    |       |
    | C_CREDIT       | varchar(2)   | YES  |     | NULL    |       |
    | C_CREDIT_LIM   | float(12,2)  | YES  |     | NULL    |       |
    | C_DISCOUNT     | float(4,4)   | YES  |     | NULL    |       |
    | C_BALANCE      | float(12,2)  | YES  |     | NULL    |       |
    | C_YTD_PAYMENT  | float(12,2)  | YES  |     | NULL    |       |
    | C_PAYMENT_CNT  | int(4)       | YES  |     | NULL    |       |
    | C_DELIVERY_CNT | int(4)       | YES  |     | NULL    |       |
    | C_DATA         | varchar(500) | YES  |     | NULL    |       |
    +----------------+--------------+------+-----+---------+-------+
    21 rows in set (0.01 sec)
      

  2.   

    MYSQL抽筋了么这是神码错误!
      

  3.   

    把ORDER改成`ORDER` 因为它是MySQL关键字
      

  4.   

    加上单引号貌似还是不能用。。ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ORDER'(
    O_ID int UNIQUE,
    O_D_ID int UNIQUE,
    O_W_ID int UNIQUE,
    O_C_ID int UNIQU' at line 1
      

  5.   

    SQL文件:
    CREATE TABLE 'ORDER'(
    O_ID int UNIQUE,
    O_D_ID int UNIQUE,
    O_W_ID int UNIQUE,
    O_C_ID int UNIQUE,
    O_ENTRY_D time,
    O_CARRIER_ID int,
    O_OL_CNT int,
    O_ALL_LOCAL int,
    PRIMARY KEY(O_W_ID, O_D_ID, O_ID),
    FOREIGN KEY (O_W_ID) REFERENCES CUSTOMER  (C_W_ID),
    FOREIGN KEY (O_D_ID) REFERENCES CUSTOMER  (C_D_ID),
    FOREIGN KEY (O_C_ID) REFERENCES CUSTOMER  (C_ID)
    );