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