zer*_*rmy 2 php mysql postgresql varbinary
我将一个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');
Run Code Online (Sandbox Code Playgroud)
注意:我在那里包含了一些php,因为我的日志没有显示插入的ip地址是什么(它是blob/something)
现在,如果它是一个bytea字段,这个查询是否会存储完全相同的数据?我会推测是的,但对于一个select语句也是如此吗?
即会,这个查询无论IP字段是否返回相同的数据varbinary或bytea?
SELECT userID, userName, userRole, channel ,ip FROM table
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间,祝你有个美好的一天.
是的,bytea等同于varbinary/ image/ blob等.话虽如此,PostgreSQL确实带有一个inet标准类型,它将采用文本表示形式的IPv4地址并将其存储为32位整数.