mysql 语法错误 1064 在第 194 行为多对多关系添加外键
Posted
技术标签:
【中文标题】mysql 语法错误 1064 在第 194 行为多对多关系添加外键【英文标题】:mysql syntax error 1064 at line 194 add foreign key for many-to-many relationship 【发布时间】:2012-05-01 02:16:36 【问题描述】:请帮帮我。当我尝试运行 sql 命令时收到以下消息:
第 194 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以了解在 '( 添加约束 VFSGRPUSR_REF_VFSGRP 外键 (VFSGRP) 参考 `VFS' 在第 1 行我正在尝试实现多对多关系。
<pre></pre>
---------------------------------------------- ------------------------------------------
如果存在则删除表VFSGRPUSR
;
创建表VFSGRPUSR
(
VFSGRP
整数引用 VFSGRP(VFSGRP_ID),
VFSUSR
整数引用 VFSUSR(VFSUSR_ID),
主键 (VFSGRP
, VFSUSR
)
)ENGINE=InnoDB 默认字符集 utf8;
---------------------------------------------- ------------------------------------------
如果存在则删除表VFSUSR
;
创建表VFSUSR
(
VFSUSR_ID
INTEGER NOT NULL auto_increment,
DEPARTMENT
整数,
FIRSTNAME
VARCHAR(255) 非空,
SURNAME
VARCHAR(255) 非空,
LOGIN
VARCHAR(255) 非空,
PASSWORD
BLOB,
TOKEN
BLOB,
主键 (VFSUSR_ID
),
CONSTRAINT VFSUSR_REF_DEPARTMENT FOREIGN KEY (DEPARTMENT) REFERENCES DEPARTMENT (DEPARTMENT_ID)
)ENGINE=InnoDB 默认字符集 utf8;
---------------------------------------------- ------------------------------------------
如果存在则删除表VFSGRP
;
创建表VFSGRP
(
VFSGRP_ID
INTEGER NOT NULL auto_increment,
GROUPNAME
VARCHAR(255) 非空,
主键 (VFSGRP_ID
)
)ENGINE=InnoDB 默认字符集 utf8;
---------------------------------------------- ------------------------------------------
更改表 VFSGRPUSR(
添加约束 VFSGRPUSR_REF_VFSGRP
外键 (VFSGRP)
参考VFSGRP
(VFSGRP_ID)
)ENGINE=InnoDB 默认字符集 utf8;
更改表 VFSGRPUSR(
添加约束 VFSGRPUSR_REF_VFSUSR
外键 (VFSUSR)
参考VFSUSR
(VFSUSR_ID)
)ENGINE=InnoDB 默认字符集 utf8;
【问题讨论】:
【参考方案1】:为什么还要设置ENGINE
和CHARSET
?只需使用:
ALTER TABLE VFSGRPUSR
ADD CONSTRAINT VFSGRPUSR_REF_VFSGRP
FOREIGN KEY (VFSGRP)
REFERENCES VFSGRP(VFSGRP_ID);
可用语法参考官方文档:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
【讨论】:
日食很奇怪。我以前试过,但似乎日食不喜欢我。也许隐藏的字符!非常感谢。以上是关于mysql 语法错误 1064 在第 194 行为多对多关系添加外键的主要内容,如果未能解决你的问题,请参考以下文章
MySQL #1064 - 您的 SQL 语法 2020 有错误 [重复]
MySQL 语法错误 1064 与 MS Access 中的联合查询