我正在尝试创建一个附加了数据库的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
请告诉我该怎么做,是否需要安装一些额外的软件?
答案 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。