我正在尝试更改数据库,但我不确定确切的语法,我在网上找不到它。给出错误的行是:
cur.execute("ALTER TABLE Units ADD FOREIGN KEY(pnid), REFERENCES Basic(pnid)) ")
错误是
ProgrammingError:(1064,“你的SQL语法有错误;请查看与你的MySQL服务器版本相对应的手册,以便在第1行”'参考基本(pnid)'附近使用正确的语法)“) p>
答案 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));