Welchen PostgreSQL-Spaltentyp sollte ich zum Speichern eines Java BigDecimal verwenden?Welcher PostgreSQL-Spaltentyp sollte zum Speichern eines Java BigDecimal verwendet werden?
Antwort
Siehe PostgreSQL datatypes - vielleicht Numeric, die als beliebiger Genauigkeit Typ handeln kann (dies ist eine PostgreSQL-Erweiterung).
... ohne Präzision oder Maßstab schafft eine Spalte, in der numerischen Werte aller Genauigkeit und Skalierung können gespeichert werden, bis hin zur Implementierung Grenze für Präzision.
Ich bin nicht ganz sicher, was „Implementierung Grenze für Präzision ist“, though. Habe noch nie versucht wirklich große Zahlen. Ist das Limit erreicht, ist ein Rückfall auf text
möglich. Aber ich vermute, dass es vorher noch andere wichtige Probleme geben wird ;-) Wenn Sie weniger speichern möchten, geben Sie eine Genauigkeit und/oder Skalierung an numeric
.
bearbeiten als sjr erwähnt, die Einschränkung 1000 Dezimalziffern Präzision ist (aus der gleichen Verbindung):
Der Typ numerischen können Nummern speichern mit bis zu 1000 Stellen genau [in Aktuelle Implementierungen] und führen Berechnungen genau durch. Es ist speziell für die Speicherung von Geldbeträgen und andere Mengen empfohlen, bei denen Genauigkeit erforderlich ist ...
Wenn mehr Präzision erforderlich ist - trotz ein viel größeres Problem bei der Hand hat - dann eine numerische Spalte wird nicht geeignet (für sich). Aber das ist wirklich eine sehr extreme "was wäre wenn" und wahrscheinlich spielt keine einschränkende Rolle.
Verwenden Sie einfach die Java-Mappings für die gängigen SQL-Datentypen. In diesem Fall können Sie eine NUMERIC oder DECIMAL verwenden.
Das funktioniert in PostgreSQL wegen der speziellen Unterstützung. SQL selbst definiert jedoch keinen willkürlichen numerischen Genauigkeitstyp. In SQL Server beträgt die maximale Genauigkeit 38 Stellen. (Hoffentlich ist der BigDecimal-Wert garantiert in diesem Bereich zu sein :-) –
Die Frage bezieht sich auf PostgreSQL, nicht auf SQL Server. NUMERIC und DECIMAL haben keine Grenzen in PostgreSQL: http://www.postgresql.org/docs/current/static/datatype-numeric.html –
Sogar PostgreSQL, laut der Dokumentation, hat eine Obergrenze von 1000 Stellen der Genauigkeit. Ich musste nie Nummern irgendwo in der Nähe dieser großen verwenden, so kann ich nicht anders kommentieren. (Javas BigDecimal hat ein * viel * größeres Limit.) Der Punkt ist, dass der Raum von numerisch * kleiner * ist und obwohl ich keinen praktischen Grund kenne, ihn zu überschreiten, sollte die Tatsache nicht unerwähnt bleiben. –
- 1. PostgreSQL: Welcher Datentyp sollte für die Währung verwendet werden?
- 2. Welcher Suchindex sollte mit php und postgresql Clustering verwendet werden
- 3. Welcher Kontext sollte in setUserVisibleHint verwendet werden? Methode
- 4. Welcher Stripe API-Schlüssel sollte für Komponententests verwendet werden
- 5. In welcher Situation sollte ostream_iterator increment verwendet werden?
- 6. BigDecimal in Java
- 7. Welcher Datentyp wird in MySQL zum Speichern von Bildern verwendet?
- 8. Wann sollte Flask.g verwendet werden?
- 9. Wann sollte StringBuilder verwendet werden?
- 10. kanonische Darstellung eines BigDecimal
- 11. Wann sollte $ .extend ({...}) verwendet werden?
- 12. BigDecimal kann nicht in BigDecimal umgewandelt werden
- 13. Welcher Datentyp für die Währungsumrechnung verwendet wird
- 14. Welche Datenstruktur wird zum Speichern eines Absatzes verwendet?
- 15. Java BigDecimal Speicherverbrauch?
- 16. Wann sollte range.value verwendet werden?
- 17. Welche Datenbank zum Speichern von Schlüsselwertpaaren (Array) verwendet werden soll
- 18. Welcher Typ zum Speichern von Prozenten
- 19. Warum sollte eine UUID besser zum Speichern eindeutiger ID-Werte verwendet werden?
- 20. Welchen Variablentyp sollte ich zum Speichern eines Bildes verwenden?
- 21. Wann sollte WS_EX_NOREDIRECTIONBITMAP verwendet werden?
- 22. Wo sollte Rx verwendet werden?
- 23. Wann sollte wkWebView verwendet werden?
- 24. Wann sollte FOUNDATION_EXPORT verwendet werden?
- 25. Sollte ViewData niemals verwendet werden?
- 26. Warum sollte Ruby nicht zum Erstellen einer Spinne verwendet werden?
- 27. Welches Datenbankschema zum Speichern von Umfrageantworten verwendet werden soll
- 28. java BigDecimal arithmaticException ungültige Operation
- 29. Logarithmus eines BigDecimal
- 30. java BigDecimal Subaktion fehlgeschlagen
Sie haben recht, mein schlechter :) – sjr
Ich habe Ihren Beitrag auf die neueste Version der Dokumentation bearbeitet. 8.2 scheint etwas veraltet;) – DrColossos
@DrColossos Sehr geschätzt. –