SQL数据库中的图像

时间:2013-12-02 18:48:55

标签: mysql sql database

我正在尝试创建一个附加了数据库的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

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

1 个答案:

答案 0 :(得分:3)

您正在将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。