sql >> データベース >  >> RDS >> Mysql

mysql Compress()とsqlalchemy

    SQL関数を属性に割り当てることができます:

    from sqlalchemy import func
    object.data = func.compress(mydata)
    session.add(object)
    session.commit()
    

    DBに依存しないlower()関数を使用した例を次に示します。

    from sqlalchemy import *
    from sqlalchemy.orm import *
    from sqlalchemy.ext.declarative import declarative_base
    
    Base= declarative_base()
    
    class A(Base):
        __tablename__ = "a"
    
        id = Column(Integer, primary_key=True)
        data = Column(String)
    
    e = create_engine('sqlite://', echo=True)
    Base.metadata.create_all(e)
    s = Session(e)
    
    a1 = A()
    a1.data = func.lower("SomeData")
    s.add(a1)
    s.commit()
    
    assert a1.data == "somedata"
    

    @validatesを使用して自動化できます:

    from sqlalchemy.orm import validates
    class MyClass(Base):
        # ...
        data = Column(BLOB)
    
        @validates("data")
        def _set_data(self, key, value):
            return func.compress(value)
    

    フラッシュする前にPythonで読み取り可能にする場合は、ローカルでメモ化し、記述子を使用してアクセスする必要があります。




    1. MySQL ROUND()関数–数値を指定された小数点以下の桁数に丸めます

    2. MySQLで月ごとの成長率を計算する方法

    3. データベース暗号化:3つのタイプとそれらが必要な理由

    4. VS2010でMySQLの日付/時刻値をSystem.DateTimeに変換できません