Почему в моем представлении базы данных нет данных? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть колба с Python 3.68.Я использую sqlalchemy для создания 2 представлений базы данных из одной таблицы MySQL.Я могу успешно выполнить пример кода, и представления создаются с ожидаемой структурой, однако, когда я выбираю из представлений, я не получаю строк, возвращаемых.Если я запускаю выделенную часть оператора create view, я получаю строки.Я не уверен, что я делаю неправильно - любая помощь будет оценена!

Вот одна из моделей представления и код создания представления.Как я уже упоминал, представление правильно создано, просто пустое, но если я запущу «SELECT p. * FROM profile p, user u WHERE p.user_id = u.id AND u.user_type = 1;»Я получаю ожидаемое количество строк

class ClientView(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), unique=True)
    phone_number = db.Column(db.String(15), nullable=True)
    address_number = db.Column(db.String(30))
    address_street = db.Column(db.String(150))
    address_city = db.Column(db.String(150))
    address_state = db.Column(db.String(150))
    address_zip = db.Column(db.String(30))
    website = db.Column(db.String(150))
    specialty = db.Column(db.Integer, db.ForeignKey("specialty.id"))
    region = db.Column(db.Integer, db.ForeignKey("region.id"))
    organization = db.Column(db.Integer, db.ForeignKey("organization.id"))
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)

    view = Table('ClientView', MetaData())
    definition = text("SELECT p.* FROM profile p, user u WHERE p.user_id = u.id AND u.user_type = 1;")
    create_view = CreateView(view, definition)
    print(str(create_view.compile()).strip())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...