Я переместил базу данных MySQL в 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');
Примечание: я включил туда несколько php, потому что мои журналы не показывают, что представляет собой вставленный IP-адрес (это большой двоичный объект / что-то)
Теперь, будет ли этот запрос хранить те же самые данные, если бы вместо этого было поле bytea
?Я бы предположил, что да, но имеет ли место то же самое для оператора select?
т.е. будет ли этот запрос возвращать те же данные независимо от того, было ли поле ip varbinary
или bytea
?
SELECT userID, userName, userRole, channel ,ip FROM table
Спасибо за ваше время, хорошего дня.