Как я понимаю, в SQLAlchemy есть триггеры, которые я могу установить для столбцов в классах таблиц, которые у меня уже есть в примере class FOO
.
Моя цель - создать новую таблицу, созданную с помощью триггеров.предопределенный класс SQLAlchemy (class PHOO
ниже) и названный в соответствии со значением новой / уникальной записи, отвечающей за триггер в этом случае TABLE foo COLUMN barbaz
Проще говоря, существует ли триггер CREATE TABLE
иМожно ли использовать логику триггера в существующем табличном классе, который получает имя вышеупомянутого триггера.
Если кто-то вставит новую строку в таблицу foo, а столбец barbaz получит значение 'asdf' (при условии уникального) Новая таблица с именемasdf создается на основе класса PHOO.
Это может быть 3 вопроса.
from sqlalchemy import Column, create_engine, engine
from sqlalchemy.types import Integer, Float, String, Date
conn_string = {'drivername':'postgresql', 'username':'****',
'password':'****', 'host':'****', 'port':5432,
'database':'****'}
conn = create_engine(engine.url.URL(**conn_string))
Base = declarative_base()
metadata = MetaData(conn)
class FOO(Base):
"""SQLalchemy object representing column types associated
with foo table in the MetaData database."""
__tablename__ = 'foo'
barbaz = Column(String(), index=True, unique=True,
primary_key=True,
CheckConstraint('length(barbaz) =10'))
name = Column(String(240))
latitude = Column(Float())
longitude = Column(Float())
class PHOO():
__tablename__ = ' '
table_id = Column(Integer, primary_key=True,
unique=True, index = True)
height = Column(Float(precision=53, asdescimal=True))
width = Column(Float(precision=53, asdescimal=True))
words = Column(String(500))
other_words = Column(String(500))