mysql语法错误1064在第194行为多对多关系添加外键

标签 mysql many-to-many

请帮帮我。当我尝试运行 sql 命令时收到以下消息:

ERROR 1064 (42000) at line 194: 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 '(
    ADD CONSTRAINT VFSGRPUSR_REF_VFSGRP
        FOREIGN KEY (VFSGRP)
        REFERENCES `VFS' at line 1

I'm trying to implement a many-to-many relationship.

<h1>----------------------------------------------------------------------------------------</h1> <p>DROP TABLE IF EXISTS <code>VFSGRPUSR</code>;</p> <p>CREATE TABLE <code>VFSGRPUSR</code> ( <code>VFSGRP</code> INTEGER REFERENCES VFSGRP(VFSGRP_ID), <code>VFSUSR</code> INTEGER REFERENCES VFSUSR(VFSUSR_ID), PRIMARY KEY (<code>VFSGRP</code>, <code>VFSUSR</code>) )ENGINE=InnoDB DEFAULT CHARSET utf8;</p> <h1>----------------------------------------------------------------------------------------</h1> <p>DROP TABLE IF EXISTS <code>VFSUSR</code>;</p> <p>CREATE TABLE <code>VFSUSR</code> ( <code>VFSUSR_ID</code> INTEGER NOT NULL auto_increment, <code>DEPARTMENT</code> INTEGER, <code>FIRSTNAME</code> VARCHAR(255) NOT NULL, <code>SURNAME</code> VARCHAR(255) NOT NULL, <code>LOGIN</code> VARCHAR(255) NOT NULL, <code>PASSWORD</code> BLOB, <code>TOKEN</code> BLOB, PRIMARY KEY (<code>VFSUSR_ID</code>), CONSTRAINT VFSUSR_REF_DEPARTMENT FOREIGN KEY (DEPARTMENT) REFERENCES DEPARTMENT (DEPARTMENT_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;</p> <h1>----------------------------------------------------------------------------------------</h1> <p>DROP TABLE IF EXISTS <code>VFSGRP</code>;</p> <p>CREATE TABLE <code>VFSGRP</code> ( <code>VFSGRP_ID</code> INTEGER NOT NULL auto_increment, <code>GROUPNAME</code> VARCHAR(255) NOT NULL, PRIMARY KEY (<code>VFSGRP_ID</code>) )ENGINE=InnoDB DEFAULT CHARSET utf8;</p> <h1>----------------------------------------------------------------------------------------</h1> <p>ALTER TABLE VFSGRPUSR( ADD CONSTRAINT VFSGRPUSR_REF_VFSGRP FOREIGN KEY (VFSGRP) REFERENCES <code>VFSGRP</code>(VFSGRP_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;</p> <p>ALTER TABLE VFSGRPUSR( ADD CONSTRAINT VFSGRPUSR_REF_VFSUSR FOREIGN KEY (VFSUSR) REFERENCES <code>VFSUSR</code>(VFSUSR_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8; </p>

最佳答案

为什么你还要尝试设置ENGINECHARSET?只需使用:

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行为多对多关系添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230233/

相关文章:

Mysql:金钱和花车

mysql select distinct 语句(严格版本?)

hibernate - ManyToMany关联删除连接表条目

java - 来自一个连接表的多个@ManyToMany 集

c# - 如何将两个列值添加到列表

php - 合并具有唯一属性的两行

doctrine - Doctrine 1.2 中多对多表的 SoftDelete

c# - 为什么我不能在 EF4 中的多对多实体上重写 GetHashCode?

php - 如何使用事件观察者模型获取事件 sales_order_place_after 的订单号?

java - 多对多 - 仅在连接表和一张表中保存/更新