Je dois faire face à la, je suppose le grand int, les valeurs de la clé primaire 1380742793415240
. Dans R je peux facilement ajuster l'option (scipen = 100) mais j'ai besoin de stocker ces données dans postgres db. J'ai déjà essayé de dbWriteTable par défaut (double précision) avec le résultat: violer constaint (probablement dupliquer les clés dans ... 4e + 015 représentation) et aussi après avoir changé la colonne cible à bigint avec le résultat: invalid input syntax for integer: "1.38074279341524e+015"
.R RgregreSQL bigint type de données
exemple: essayer de sauvegarder et charger de db suivant dt
sample_dt <- data.table(a = c(20130101,20130102,20130102),
b = c(1380742793415240,1380742793415241,1380742793415242))
Quel est le moyen efficace de sauvegarder et charger ce type de données dans Postgres?
Enregistrer sous personnage? (C'est 'options' 'et je me demande si' options (scipen = 100) 'fait vraiment ce que vous pensez qu'il est.)' '.Machine $ integer.max <1380742793415240 [1] TRUE' –
Utilisation du champ de caractères pour que je ne serais pas capable d'interroger 'sql <- paste0 (" select * from tbl où b> = '", one_id,"' ")' efficacement. Tous les identifiants ne commencent pas par 138 ..., pour gérer ce cas, je devrais remplir les espaces de début avec des zéros pour avoir toutes les chaînes du même nchar. N'y a-t-il pas de solution plus élégante pour stocker des nombres comme '212982,1380742793415240' comme colonne de clé primaire et les interroger efficacement en utilisant l'opérateur'> '??? – jangorecki
Je ne sais pas vraiment. Je sais que votre clé proposée ne rentrera pas dans les contraintes du mode entier de R. –