2016-02-09 61 views
10

Trong Java, tôi có thể nói Integer.MAX_VALUE để có số lớn nhất mà loại int có thể giữ.Có hằng số MAX_INT trong Postgres không?

Có hằng số/chức năng tương tự trong Postgres không? Tôi muốn tránh viết mã số cứng.

Chỉnh sửa: lý do tôi hỏi là điều này. Có một bảng kế thừa có ID là loại integer, được hỗ trợ bởi một chuỗi. Có rất nhiều hàng đến trong bảng này. Tôi muốn tính toán bao nhiêu thời gian trước khi integer hết, vì vậy tôi cần phải biết "còn bao nhiêu ID" được chia cho "chúng tôi đang chi tiêu bao nhiêu".

+0

Không có sự cố như vậy ở đâu? Không có "lớp" được xác định trước như 'Integer' trong cơ sở dữ liệu. Nếu bạn muốn, bạn có thể viết một hàm đơn giản trả về 2147483647 –

+3

@a_horse_with_no_name Vâng, có rất nhiều hằng số được xác định trước và ma thuật trong SQL, bao gồm cả postgres: 'CURRENT_TIMESTAMP', chẳng hạn. Nó sẽ không có vẻ ở tất cả các nơi để tôi có một 'MAX_INT' /' INT_MAX'. Hoặc, đối với vấn đề đó, một hàm 'sizeof()' kiểu C. – IMSoP

+2

Không có hàm nào trong số các hàm được xác định trước đó trong SQL phơi bày các chi tiết _implementation_. SQL không thực sự xử lý thông tin mức thấp như 'sizeof()' vì mục đích của SQL là giúp bạn khỏi sự cần thiết phải biết điều đó. Bạn có thể truy vấn kích thước của _value_, nhưng không cho kích thước của kiểu dữ liệu. Câu hỏi thực sự là: tại sao bạn nghĩ rằng bạn cần điều đó? Vấn đề cơ bản mà bạn đang cố gắng giải quyết là gì? –

Trả lời

4

Không có liên tục cho điều này, nhưng tôi nghĩ rằng nó hợp lý hơn để mã cứng số trong Postgres hơn là trong Java.

Trong Java, mục tiêu triết học là dành cho Integer là một giá trị trừu tượng, do đó, có ý nghĩa rằng bạn muốn hoạt động như thể bạn không biết giá trị tối đa là gì.

Trong Postgres, bạn gần gũi hơn với kim loại trần và định nghĩa loại integer là nó là a 4-byte signed integer.

+0

Kích thước của một int cũng được tóm tắt trong C, mà Postgres được viết. – sudo

+0

Số nguyên của Postgres không giống với C int' –

+0

Có. Xin lỗi, không có nghĩa là nó được trừu tượng hóa trong Postgres. Postgres xác định giới hạn số nguyên của chúng một cách độc lập. – sudo

Các vấn đề liên quan