Мне удалось реализовать подключение от R через RMariaDB и DBI к удаленной базе данных MariaDB.Однако в настоящее время я сталкиваюсь со странным изменением чисел при запросе базы данных через R. Я объясню различия:
Я вставил одну простую запись в свою базу данных с помощью следующей команды:
INSERT INTO respondent ( id, name ) VALUES ( 2388793051, 'testuser' )
Когда я подключаюсь к этой базе данных непосредственно на удаленном сервере и выполняю инструкцию, подобную этой:
SELECT * FROM respondent;
, она выдает эти значения
id: 2388793051, имя: testuser
Так что я также должен иметь возможность подключиться к базе данных через R и получить те же результаты.Поэтому, когда я выполняю следующий код в R, я ожидаю получить эту вставленную и сохраненную информацию, показанную выше:
library(DBI)
library(RMariaDB)
conn <- DBI::dbConnect(drv=RMariaDB::MariaDB(), user="myusername", password="mypassword", host="127.0.0.1", port="1111", dbname="mydbname")
res <- dbGetQuery(conn, "SELECT * FROM respondent")
print(res)
Однако результат этого запроса следующий
id name
-1906174245 testuser
Как видите, идентификатор теперь -1906174245 вместо сохраненных 2388793051 в базе данных.Я не понимаю это странное преобразование целых чисел в поле id.Может кто-нибудь объяснить, как возникает эта проблема и как я могу ее решить?
РЕДАКТИРОВАТЬ: Я не ожидаю, что это будет проблемой, но просто сообщить вам: я использую SSH туннель для подключения через эти указанные порты от моего локального к моей удаленной машине.
РЕШЕНИЕ: Различие заключалось в том, чтобы указать идентификатор респондента в спецификации базы данных уже как BIGINT вместо INT.Благодаря @ JonnyCrunch