2017-03-10 13 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 

しかし、私はエラーました:どのように私はSQLAlchemyの中に複数のキーが含まれているこのテーブルクラスを

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' 

を宣言することができますか?誰かが私を助けることを願っています。前もって感謝します。

+0

複合主キーを意味しますか?または複数の固有の制約? – univerio

+0

つまり、複数のキーがあります。ここで、列は、列内で指定された値の複数の出現が許可される非一意索引の最初の列です。 (https://dev.mysql.com/doc/refman/5.7/en/show-columns.html) – RunawayBride

+0

だから、ちょうど普通のインデックスですか?あなたは何をしようとしましたか? – univerio

答えて

0

あなたは、各PKの列のためのあなたのマッピングで真= PRIMARY_KEYを指定できるようになります。

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

あなたはそれを試してみましたか?

関連する問題