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

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


错误是


  ProgrammingError:(1064,“您的SQL语法有错误;请在第1行的'REFERENCES Basic(pnid)''附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法”))

最佳答案

您未按照文档所述使用正确的语法添加外键

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

关于python - 尝试更改表时出现Python MySQLdb错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25025970/

10-10 23:37