Сообщество SQLAlchemy, новичок в базе данных и, в частности, sqlalchemy ищет здесь вашей помощи. Как и следовало ожидать, моя база данных состоит из строк и столбцов. Каждая строка - это информация об одном уникальном человеке. У каждого человека есть несколько столбцов (дата рождения, имя, фамилия, предыдущие даты входа в систему и т. Д. c.) Для одного из этих столбцов (даты предыдущих входов в систему) я хотел бы сохранить несколько значений внутри одного ячейка. Другими словами, я хотел бы иметь возможность хранить последние, скажем, десять дат входа в систему и иметь возможность манипулировать этими датами так же, как манипулировать списком в python. Я хотел бы иметь возможность добавлять новые даты входа в эту ячейку, удалять элементы из ячейки и доступ специфицированный c индекс ячейка. В основном моя ячейка хотела бы что-то вроде этого
{"04042020","04052020","04072020"}
И моя база данных будет выглядеть так
Name | Last Name | Last Log in dates
------------------------------------------------------------
Edgar | Allen | {"04042020","04052020","04072020"}
Dimitri | Albertini | {"12042019","10112019","01072020"}
Я знаю, что sqlalchemy имеет способ включать ARRAY с
from sqlalchemy.dialects.postgresql import ARRAY
После некоторых усилий я просто смог создать ARRAY и НЕ смог придумать способ манипулировать (добавлять, удалять, обращаться) к массиву. Вот простой прототип, который создает таблицу только с одним столбцом, а элемент в первой строке равен {1,2,3}.
from sqlalchemy import create_engine
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.dialects.postgresql import ARRAY
engine = create_engine('postgresql://rouzbeh:tiger@localhost/newtable')
metadata = MetaData()
newtable = Table("newtable", metadata,
Column("data", ARRAY(Integer))
)
metadata.create_all(engine)
connection = engine.connect()
connection.execute(newtable.insert(),data=[1,2,3])
Вывод в Postgress postico выглядит как на следующем снимке экрана. Еще раз повторю, я хотел бы иметь доступ к элементам ({1,2,3}
) и управлять ими, удаляя или добавляя к ним элементы. ({1,2,3,4}
) или ({1,2}
)