SQL数据库中的映像



我正在尝试创建一个附带数据库的GUI,我的SQL表是:

    CREATE TABLE IF NOT EXISTS imagerecord (
    PId int,
    PName varchar(50) not null,
    Photo varbinary(max)
    )

很明显,我正试图在数据库中包含一个图像(至少,我认为我正在这样做),但我的系统没有识别"varbinary"数据类型,显示了以下错误:

    Error code 1064, SQL state 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'max) )' at line 4

请告诉我该怎么办,我需要安装一些额外的软件吗?

您正在将VARBINARY(MAX)的Microsoft SQL Server语法与CREATE TABLE IF NOT EXISTS的MySQL语法混合使用。两种RDBMS实现都不支持这两种特性。

  • Microsoft SQL Server支持MAX作为长度,而不是特定的数字,但标准SQL和大多数其他品牌不支持此选项。

  • MySQL支持IF NOT EXISTS作为可选的修饰符,但这也不是标准的SQL,Microsoft也不支持此扩展。

你需要弄清楚你使用的是哪个品牌。事实上,MAX给出了一个错误,但IF NOT EXISTS并没有表明您正在使用MySQL。以下是相应文档页面的链接:

Microsoft SQL Server 2012:

  • 创建表
  • 二进制和可变二进制

MySQL 5.6:

  • 创建表
  • 二进制和可变二进制

MySQL中VARBINARY的最大长度为65535。如果您需要一个可以接受较长字符串的列,可以使用允许高达16MB的MEDIUMBLOB或允许高达4GB的LONGBLOB。

相关内容

  • 没有找到相关文章

最新更新