Mysql SQL:创建表时出现错误1064

Mysql SQL:创建表时出现错误1064,mysql,sql,mysql-error-1064,Mysql,Sql,Mysql Error 1064,我正在创建3个子类表,其他2个子类已完成并正常工作,但当我为最后一个表输入以下代码时,我出现此错误(1064): mysql> CREATE TABLE foreign ( -> account_no VARCHAR(16) NOT NULL, -> foreign_id VARCHAR(16) NOT NULL, -> TYPE CHAR(4) DEFAULT 'FORE' NOT NULL -> CHECK ( TYPE = 'F

我正在创建3个子类表,其他2个子类已完成并正常工作,但当我为最后一个表输入以下代码时,我出现此错误(1064):

mysql> CREATE TABLE foreign (
    -> account_no VARCHAR(16) NOT NULL,
    -> foreign_id VARCHAR(16) NOT NULL,
    -> TYPE CHAR(4) DEFAULT 'FORE' NOT NULL
    -> CHECK ( TYPE = 'FORE'),
    -> currency_TYPE CHAR(3) NOT NULL
    -> CHECK ( currency_TYPE IN ('EUR','USD','HKD')),
    -> balance DECIMAL(16,2),
    -> PRIMARY KEY(account_no, foreign_id),
    -> FOREIGN KEY(account_no, TYPE)
    -> ON UPDATE CASCADE
    -> ON DELETE CASCADE);

错误消息告诉我,在
外部(帐户\u no VARCHAR(16)NOT NULL,外部\u id VARCHAR(16)NOT NULL,TYPE
语法错误,但我找不到它,有什么问题吗?

外部是MySQL保留字

重命名此表,或使用backticks`引用此名称-

CREATE TABLE `foreign` (...
对于外键(账号,类型),您需要提供引用列

范例

CREATE TABLE parent (id INT NOT NULL,
                 PRIMARY KEY (id)
  ) 
 CREATE TABLE child (id INT, parent_id INT,
                INDEX par_ind (parent_id),
                FOREIGN KEY (parent_id) REFERENCES parent(id)
                  ON DELETE CASCADE
   )