sql >> Databáze >  >> RDS >> Mysql

mysql Compress() s sqlalchemy

k atributu:

můžete přiřadit funkci SQL
from sqlalchemy import func
object.data = func.compress(mydata)
session.add(object)
session.commit()

Zde je příklad použití funkce Lower() více agnostické k DB:

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"

můžete to udělat automaticky pomocí @validates:

from sqlalchemy.orm import validates
class MyClass(Base):
    # ...
    data = Column(BLOB)

    @validates("data")
    def _set_data(self, key, value):
        return func.compress(value)

pokud chcete, aby byl čitelný v pythonu před vyprázdněním, musíte si jej lokálně zapamatovat a pro přístup k němu použít deskriptor.




  1. Oprava mezer v id řádku tabulky mysql poté, co některé z nich odstraníme

  2. Existují nějaké SQL Validátory, které dokážou zkontrolovat syntaxi proti více databázovým serverům?

  3. Získejte hodnotu na základě max. z jiného sloupce seskupeného podle jiného sloupce

  4. Co je ekvivalentní příkaz DBCC INPUTBUFFER(@@SPID) (který poskytuje příkaz SQL pro aktuální připojení nebo zadané připojení) v MYSQL?