Мне нужно иметь дело с, я полагаю, большими значениями первичного ключа int 1380742793415240
. В R я могу легко настроить параметр (scipen = 100), но мне нужно сохранить эти данные в базе данных postgres. Я уже пытался использовать dbWriteTable по умолчанию (двойная точность) с результатом: нарушение константы (вероятно, дублирующиеся ключи в представлении ... 4e+015), а также после изменения целевого столбца на bigint с результатом: invalid input syntax for integer: "1.38074279341524e+015"
.
пример: попробуйте сохранить и загрузить из БД после DT
sample_dt <- data.table(a = c(20130101,20130102,20130102),
b = c(1380742793415240,1380742793415241,1380742793415242))
Каков эффективный способ сохранения и загрузки таких данных в postgres?
options
', и мне интересно, действительно лиoptions(scipen=100)
делает то, что вы думаете.).Machine$integer.max < 1380742793415240 [1] TRUE
- person IRTFM   schedule 04.10.2013sql <- paste0("select * from tbl where b >= '",one_id,"'")
. Не все идентификаторы начинаются с 138..., чтобы справиться с этим случаем, мне нужно было бы заполнить начальные пробелы нулями, чтобы все строки имели один и тот же nchar. Нет ли более элегантного решения для хранения таких чисел, как212982,1380742793415240
, в качестве столбца первичного ключа и эффективного запроса к ним с помощью оператора>
??? - person jangorecki   schedule 04.10.2013