Мне нужно иметь дело с, я полагаю, большой int, значения первичного ключа 1380742793415240
. В R Я могу легко настроить параметр (scipen = 100), но мне нужно сохранить эти данные в postgres db. Я уже пытался использовать dbWriteTable по умолчанию (двойная точность) с результатом: нарушить constaint (возможно, дублировать ключи в представлении ... 4e + 015), а также после изменения целевого столбца на bigint с результатом: invalid input syntax for integer: "1.38074279341524e+015"
.R RpostgreSQL bigint datatype
пример: попробуйте сохранять и загружать из БДА следующих дтов
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' –
Использование символьного поля для что я не смог бы запросить 'sql <- paste0 (" select * from tbl где b> = '", one_id,"' ")' эффективно. Не все идентификаторы начинаются с 138 ..., чтобы обработать этот случай, мне нужно было бы заполнить начальные пробелы нулями, чтобы все строки были такими же nchar. Разве нет более элегантного решения для хранения чисел типа '212982,1380742793415240' в качестве столбца первичного ключа и эффективного запроса с помощью'> 'operator ??? – jangorecki
Я действительно не знаю. Я знаю, что ваш предложенный ключ не будет вписываться в ограничения целочисленного режима R. –