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

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

最佳答案

将微软SQLServer语法与VARBINARY(MAX)的MySQL语法混合为CREATE TABLE IF NOT EXISTS。两个rdbms实现都不支持这两个特性。
Microsoft SQL Server支持将MAX作为长度而不是特定的数字,但标准SQL和大多数其他品牌不支持此选项。
mysql支持将IF NOT EXISTS作为可选修饰符,但这也不是标准的sql,而且microsoft不支持此扩展。
你得弄清楚你用的是哪个牌子的。MAX给出了一个错误,但IF NOT EXISTS并不表示您正在使用mysql。以下是指向相应文档页的链接:
Microsoft SQL Server 2012:
CREATE TABLE
BINARY and VARBINARY
MySQL 5.6版本:
CREATE TABLE
BINARY and VARBINARY
MySQL中VARDION的最大长度为65535。如果需要可以接受较长字符串的列,可以使用最多允许16MB的mediumblob或最多允许4GB的longblob。

10-07 16:35
查看更多