0

Postgres DB の TEXT 列に英数字の値を挿入しようとすると、エラーが発生します。これはテーブル定義です

![ここに画像の説明を入力] 1

これは、テーブルにデータを挿入するために使用しているクエリです

INSERT INTO sensor_data
            (
                time,
                i1, i2, i3, i4,
                i5, i6, i7, i8,
                mrt,air_temperature,
                humidity,tvoc, device_id)
        VALUES (to_timestamp(1667595922) AT TIME ZONE 'UTC',
                41.340000,  26.160000, 25.860000, 26.160000,
                25.900000, 25.960000, 26.720000, 25.580000,
                26.085000, 28.065536,
                 55.204773,  40.000000, 1a0032000947363339343638
            );

これは私が得るエラーメッセージです

エラー: "a0032000947363339343638" 行 12 付近の構文エラー: 55.204773、40.000000、1a00320009473633...

このクエリを入力すると、問題なく動作します。

INSERT INTO sensor_data
            (
                time,
                i1, i2, i3, i4,
                i5, i6, i7, i8,
                mrt,air_temperature,
                humidity,tvoc, device_id)
        VALUES (to_timestamp(1667595922) AT TIME ZONE 'UTC',
                41.340000,  26.160000, 25.860000, 26.160000,
                25.900000, 25.960000, 26.720000, 25.580000,
                26.085000, 28.065536,
                 55.204773,  40.000000, 10032000947363339343638
            );

2 つのクエリの唯一の違いは、device_id の値です。値が「1a0032000947363339343638」の場合、挿入は失敗し、値が「10032000947363339343638」の場合は正常に機能します。

データ型が TEXT であるにもかかわらず、「1a0032000947363339343638」を挿入しようとすると、挿入が失敗するのはなぜですか? また、デバイス ID に 1a0032000947363339343638' を受け入れるようにテーブルを取得するにはどうすればよいですか?

4

1 に答える 1