概要
例えば name と age でユニークキーを貼る場合は以下の通りです
環境
- macOS 10.15.5
- MySQL 8.0.19
- Python 3.8.3
- Flask-SQLAlchemy 2.4.3
サンプルコード
__table_args__
を使って db.UniqueConstraint
に複数のカラムを指定すれば OK です
ユニークキーに名前をつけるので好きな名前をつけましょう
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
db = SQLAlchemy()
ma = Marshmallow()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
age = db.Column(db.Integer)
__table_args__ = (
db.UniqueConstraint('name', 'age', name='unique_name_age'),
)
def __repr__(self):
return "%s,%s,%i" % (self.id, self.name, self.age)
class UserSchema(ma.Schema):
class Meta:
fields = ("id", "name", "age")
当然ですがユニークキーを設定場合にすでに重複している場合は設定できないのでご注意を
0 件のコメント:
コメントを投稿