2012-04-19 78 views
0

請幫助我。我收到以下消息時,我嘗試運行SQL命令:MySQL語法錯誤1064行194添加多對多關係的外鍵

 
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 

我想實現一個多到多的關係。

----------------------------------------------------------------------------------------

DROP TABLE IF EXISTS VFSGRPUSR;

CREATE TABLE VFSGRPUSR ( VFSGRP INTEGER REFERENCES VFSGRP(VFSGRP_ID), VFSUSR INTEGER REFERENCES VFSUSR(VFSUSR_ID), PRIMARY KEY (VFSGRP, VFSUSR) )ENGINE=InnoDB DEFAULT CHARSET utf8;

----------------------------------------------------------------------------------------

DROP TABLE IF EXISTS VFSUSR;

CREATE TABLE VFSUSR ( VFSUSR_ID INTEGER NOT NULL auto_increment, DEPARTMENT INTEGER, FIRSTNAME VARCHAR(255) NOT NULL, SURNAME VARCHAR(255) NOT NULL, LOGIN VARCHAR(255) NOT NULL, PASSWORD BLOB, TOKEN BLOB, PRIMARY KEY (VFSUSR_ID), CONSTRAINT VFSUSR_REF_DEPARTMENT FOREIGN KEY (DEPARTMENT) REFERENCES DEPARTMENT (DEPARTMENT_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;

----------------------------------------------------------------------------------------

DROP TABLE IF EXISTS VFSGRP;

CREATE TABLE VFSGRP ( VFSGRP_ID INTEGER NOT NULL auto_increment, GROUPNAME VARCHAR(255) NOT NULL, PRIMARY KEY (VFSGRP_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;

----------------------------------------------------------------------------------------

ALTER TABLE VFSGRPUSR( ADD CONSTRAINT VFSGRPUSR_REF_VFSGRP FOREIGN KEY (VFSGRP) REFERENCES VFSGRP(VFSGRP_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;

ALTER TABLE VFSGRPUSR( ADD CONSTRAINT VFSGRPUSR_REF_VFSUSR FOREIGN KEY (VFSUSR) REFERENCES VFSUSR(VFSUSR_ID) )ENGINE=InnoDB DEFAULT CHARSET utf8;

回答

1

爲什麼你想也設置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

+0

日食奇怪。我已經嘗試過,但似乎可能月食不喜歡我。也許隱藏的字符!非常感謝你。 – weedlight 2012-04-19 15:01:51

+0

我很高興你能工作。考慮如果答案對你有幫助,則將其標記爲已接受。 – 2012-04-19 15:02:59