我无法使用python在mysqldb中分配主键或外键。

时间:2015-07-08 13:21:26

标签: python mysql mysql-python

我在python中使用MySQLdb,我无法创建一个包含主键或外键的表。我可以创建一个表,因为以下工作:

theconn = mdb.connect('localhost', 'root', 'pw', 'db')
theDB = theconn.cursor();
theDB.execute("CREATE TABLE hf_aum_returns ( \
    FundID INT NOT NULL , \
    Metric_Type CHAR(10) , \
    Metric_Value FLOAT , \
    DateTime DATE )")

但是,当我运行以下行时:

theDB.execute("CREATE TABLE hf_aum_returns_2 ( \
    FundID INT NOT NULL , \
    Metric_Type CHAR(10) , \
    Metric_Value FLOAT , \
    DateTime DATE , \
    CONSTRAINT returns_pk PRIMARY KEY ( FundID , Metric_Type , Metric_Value , DateTime )")

我收到错误告诉我检查我的语法:

_mysql_exceptions.ProgrammingError: (1064, 
"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 '' at line 1")

2 个答案:

答案 0 :(得分:0)

唉。我不聪明。在陈述结尾处错过了一个括号。 (......盯着它看了一个小时......)

答案 1 :(得分:0)

您缺少一个括号:

尝试:

CREATE TABLE hf_aum_returns_2 ( FundID INT NOT NULL , Metric_Type CHAR(10) , Metric_Value FLOAT , DateTime DATE , CONSTRAINT returns_pk PRIMARY KEY (FundID,Metric_Type,Metric_Value,DateTime))