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' を受け入れるようにテーブルを取得するにはどうすればよいですか?