как создать массив строковых столбцов в sqlalchemy с помощью mssql - PullRequest
0 голосов
/ 26 марта 2020

Я пишу программу на python, я использую ms sql сервер в качестве моей БД и sqlalchemy в качестве моего клиентского пакета. Это таблица, как определено в python коде

class UserMessage(Base):
    __tablename__ = "UserMessages"
    id = Column("Id", Integer, primary_key=True, autoincrement=True)
    message = Column("Message", Unicode, nullable=False)
    options = Column("Options", ARRAY(Unicode), nullable=True)
    answer = Column("Answer", Unicode, nullable=True)

, и это скрипт, который я использовал для создания своей таблицы

CREATE TABLE UserMessages (
    Id INTEGER IDENTITY NOT NULL,
    Message NVARCHAR(MAX) NOT NULL,
    Options NVARCHAR(MAX),
    Answer NVARCHAR(MAX),

    PRIMARY KEY(Id)
)

Но когда я пытаюсь добавить запись в БД я получаю следующее исключение

sqlalchemy.ex c .ProgrammingError: (pyodb c .ProgrammingError) ('42000', "[42000] [Microsoft] [SQL Server Собственный клиент 11.0] [SQL Сервер] Столбец, параметр или переменная # 2: не удается найти тип данных READONLY. (2715) (SQLExecDirectW); [42000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Оператор (ы) не может быть подготовлен. (8180); [42000] [Microsoft] [SQL Собственный клиент сервера 11.0] [SQL Сервер] Параметр или переменная '@ P2' имеют недопустимый тип данных. (2724) ")

Я понимаю, что проблема в столбце options, предполагается, что этот столбец представляет собой массив json (массив, содержащий строки)

Каков тип соответствия для ARRAY(Unicode) в sql? Есть ли другой способ создать массив строковых столбцов в sqlalchemy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...