0

这是我的创建表,这是我得到的错误

DROP TABLE IF EXISTS `teamfocus_dbo`.`sysdiagrams`;
CREATE TABLE `teamfocus_dbo`.`sysdiagrams` (
    `name` VARCHAR(128) NOT NULL,
  `principal_id` INT(10) NOT NULL,
  `diagram_id` INT(10) NOT NULL AUTO_INCREMENT,
  `version` INT(10) NULL,
  `definition` VARBINARY(-1) NULL,
  PRIMARY KEY (`diagram_id`),
  UNIQUE INDEX `UK_principal_name` (`principal_id`, `name`)
)
ENGINE = INNODB;

错误

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 '-1) NULL,
 PRIMARY KEY (`diagram_id`),
 UNIQUE INDEX `UK_principal_name` (`pri' at line 6

我什至试图取出 UNIQUE 行但仍然出错......任何想法

4

1 回答 1

2

-1VARBINARY对于大多数数据库来说不是一个有效的长度:

SQL 服务器:http: //msdn.microsoft.com/en-us/library/ms188362.aspx

varbinary [ ( n | max) ]

可变长度二进制数据。n 可以是 1 到 8,000 之间的值。

MySQL: http ://dev.mysql.com/doc/refman/5.0/en/binary-varbinary.html

指的VARCHAR是提供以下限制:

在 MySQL 5.0.3 之前,长度可以指定为 0 到 255 之间的值,在 5.0.3 和更高版本中可以指定为 0 到 65,535 之间的值。

http://dev.mysql.com/doc/refman/5.0/en/char.html

于 2011-08-20T03:23:07.743 回答