このテーブルを考えると:
そしてこのクエリ:
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
NUMERIC_PRECISION, IS_NULLABLE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME='PARAMETERS'
ORDER BY TABLE_NAME, ORDINAL_POSITION
私はこの結果を得ます:
整数列のサイズを取得するにはどうすればよいですか? PAR_ID
(長さ = 2) の場合、5 を取得しますNUMERIC_PRECISION
。
の定義NUMERIC_PRECISION
は「近似数値データ、真数値データ、整数データ、金額データの精度。それ以外はNULLを返す」です。しかし、なぜ smallint(2) の値が 5 で、たとえば float(8) の値が 53 なのですか? この値は何を意味しますか?
アップデート:
@Ed_Harper に感謝: 長さと精度には違いがあります。長さは、数値を格納するために使用されるバイト数です。精度は、数値の桁数です。参照: http://goo.gl/EOTyC