【问题标题】:What is the difference between image(SQL Server) and longblob(MySQL)?image(SQL Server)和longblob(MySQL)有什么区别?
【发布时间】:2016-04-16 19:42:26
【问题描述】:

SQL Server 映像表

CREATE TABLE "SqlServerTable" (
    "id" INT NOT NULL,
    "image" IMAGE NOT NULL,
    PRIMARY KEY ("id")
);

MySQL 镜像表

CREATE TABLE `MySqlTable` (
    `id` INT NOT NULL,
    `image` LONGBLOB NOT NULL,
    PRIMARY KEY (`id`)
);

imagelongblob 有什么区别?

如何将SQL Server中image类型的数据转换为MySQL中blob类型的数据?

当我将数据从 SQL Server 复制到 MySQL 时,不显示任何图像 file_put_contents('2xx.jpg',$MySqlTable['image']);?

我对图像类型 SQL Server 做了特殊处理?

【问题讨论】:

  • 不,我可以将数据从 sql server 转换为 mysql,但是当将数据从 sqlserver 转换为 mysql 时不显示图像,因为说图像二进制文件格式无效
  • 这将帮助您以有效的方式进行迁移。您不应该将图像字段内容复制到 mysql 中的 longblob
  • 我觉得可以用转换器程序,不要直接做
  • @BehzadHassani 怎么办?这个程序怎么办?

标签: php mysql sql-server image blob


【解决方案1】:

BLOB in MySQL
BLOB 值被视为二进制字符串(字节字符串)。它们没有字符集,排序和比较基于列值中字节的数值。
四种 BLOB 类型是 TINYBLOBBLOBMEDIUMBLOBLONGBLOB。它们的区别仅在于它们可以保存的值的最大长度。
MySQL 连接器/ODBC 将 BLOB 值定义为 LONGVARBINARY

image
从 0 到 2^31-1 (2,147,483,647) 字节的可变长度二进制数据。
image 数据类型将在 Microsoft SQL Server 的未来版本中被删除。请改用 varbinary(max)
Microsoft research: To BLOB or Not To BLOB

恕我直言,两者都是一组二进制数据,不同之处在于每个 DBMS 如何存储该组二进制数据。
如果在表文件数据中使用没有任何优势,我认为避免处理图像、流等的更好解决方案是存储 URL 文件链接。

【讨论】:

    猜你喜欢
    • 2011-07-30
    • 2011-09-01
    • 1970-01-01
    • 2018-03-23
    • 2011-03-15
    • 2011-01-06
    • 2017-08-02
    • 2021-08-04
    • 1970-01-01
    相关资源
    最近更新 更多