mysql DB を Postgres に移動しましたが、一部のテーブルにはvarbinary(16)
(IP アドレスを格納するための) フィールドがありました。
Postgres はフィールドをサポートしていません。varbinary
いくつかの調査の結果、Postgres に相当するのはbytea
.
bytea
そこで、 ip 列のフィールド タイプとしてテーブルを作成しました。
よくわかりませんが、これが問題を引き起こしている可能性があります。
ですから、私の質問は、bytea
とvarbinary
が完全に同等に扱われるかどうかです。たとえば、元の MySQL クエリが次の場合:
INSERT INTO messages(userID, userName, userRole, dateTime, ip, text)
Values('21212111','bot','4',NOW(), inet_pton($ip), 'hi');
注:挿入されたIPアドレスがログに表示されないため、そこにいくつかのphpを含めました(これはブロブ/何かです)
bytea
では、このクエリがフィールドの場合、まったく同じデータを格納するでしょうか? はいと思いますが、同じことが select ステートメントにも当てはまりますか? つまり、このクエリは、
ip フィールドがvarbinary
bytea
SELECT userID, userName, userRole, channel ,ip FROM table
お時間をいただきありがとうございます。よい一日を。