2017-03-10 96 views
0

我是Sqlalchemy的新手。 我有列USERNAME中的多個鍵的表。 這就是我在模型中所做的。sqlalchemy ORM:如何聲明一個包含多個鍵的表類?

型號:

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://[email protected]/admin' 
db = SQLAlchemy(app) 

class RADUSAGE(db.Model): 
    __tablename__ = 'RADUSAGE' 
    USERNAME = db.Column(db.String(513)) 
    AGE = db.Column(db.Integer) 

    def __init__(self, USERNAME, AGE): 
     self.USERNAME = USERNAME 
     self.AGE = AGE 

def __repr__(self): 
    return '<RADUSAGE %r>' % self.USERNAME 

但我得到了一個錯誤:

File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 530, in map 
**self.mapper_args 
File "<string>", line 2, in mapper 
File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 677, in __init__ 
self._configure_pks() 
File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1277, in _configure_pks 
(self, self.mapped_table.description)) 
sqlalchemy.exc.ArgumentError: Mapper Mapper|RADUSAGE|RADUSAGE could not assemble any primary key columns for mapped table 'RADUSAGE' 

我如何可以聲明包含SQLAlchemy的多個關鍵這個表類?希望可以有人幫幫我。提前致謝。

+0

你是指複合主鍵?還是多個獨特的約束? – univerio

+0

我的意思是,多列鍵是列是非唯一索引的第一列,其中列中允許多個出現的給定值。 (https://dev.mysql.com/doc/refman/5.7/en/show-columns.html) – RunawayBride

+0

那麼只是一個普通的索引?你做了什麼沒有奏效? – univerio

回答

0

你應該能夠指定primary_key你映射= TRUE每個PK列:

USERNAME = db.Column(db.String(513), primary_key=True) 
AGE = db.Column(db.Integer, primary_key=True) 

你嘗試了嗎?

相關問題