Вопрос из двух частей - 1. Триггер SQLAlchemy на столбце для создания новых таблиц.2. Использование класса SQLAlchemy для триггерной структуры таблицы - PullRequest
0 голосов
/ 04 октября 2018

Как я понимаю, в 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...