尝试更改表时Python MySQLdb错误

时间:2014-07-29 22:22:51

标签: python mysql sql syntax

我正在尝试更改数据库,但我不确定确切的语法,我在网上找不到它。给出错误的行是:

 cur.execute("ALTER TABLE Units ADD FOREIGN KEY(pnid), REFERENCES Basic(pnid)) ")

错误是

  

ProgrammingError:(1064,“你的SQL语法有错误;请查看与你的MySQL服务器版本相对应的手册,以便在第1行”'参考基本(pnid)'附近使用正确的语法)“) p>

2 个答案:

答案 0 :(得分:1)

删除,之前的逗号REFERENCES,如下所示

ALTER TABLE Units ADD FOREIGN KEY(pnid), REFERENCES Basic(pnid) 
                                        <--Here

ALTER语句看起来应该是

ALTER TABLE Units ADD FOREIGN KEY(pnid) REFERENCES Basic(pnid)

答案 1 :(得分:0)

您没有使用正确的语法来添加外键,因为文档说

ALTER TABLE tbl_name
    ADD [CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]

REFERENCES删除之前,您还有一个额外的逗号

ALTER TABLE Units ADD FOREIGN KEY(pnid) REFERENCES Basic(pnid));

Using FOREIGN KEY Constraints