Вставьте ключ / идентификатор вместо значения в таблицу SQL - PullRequest
0 голосов
/ 16 марта 2020

Извините заранее, я уверен, что где-то есть ответ на этот вопрос, но я не могу найти решение. Я ищу для вставки записи из Pandas данных, хранящих события, скопированные с веб-страницы, в нормализованную базу данных. Таким образом, мой DF имеет записи, такие как:

Time    Action      User    Company    User2
---------------------------------------------------
00:02   buy share   msmith  ACME       tjones
00:03   sell share  tjones  Alpha      msmith
...

, и у меня есть база данных с таблицами:

ActionType (ID INT IDENTITY(1,1), Name VARCHAR)

Users (ID INT IDENTITY(1,1), Username VARCHAR, CompanyID INT FOREIGN KEY)

Companies (ID INT IDENTITY(1,1), CompanyName VARCHAR)

Events (ID INT IDENTITY(1,1), ActionID INT FOREIGN KEY, UserID INT FOREIGN KEY, CompanyID INT FOREIGN KEY, User2ID INT FOREIGN KEY)

Я хочу вставить фрейм данных в таблицу событий, но я хочу это хранить связанный идентификатор для каждого столбца, а не необработанный текст. Есть ли способ легко сделать это через SQLAlchemy (или другие пакеты RDBMS или ORM), или мне нужно go строка за строкой и установить переменные, такие как

userid = session.query(Users).filter(Users.Username == df.User) 

Бонус (возможно, отдельный) вопрос Как бы я go о вводе нового значения в таблицы, когда оно встречается (т.е. df.User не в таблице пользователей, поэтому я хочу INSERT INTO Users VALUES ...)

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