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