这个create table语法有什么问题

时间:2011-08-20 03:07:48

标签: mysql create-table

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

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系列并仍然出错......任何想法

1 个答案:

答案 0 :(得分:2)

对于大多数数据库,

-1不是VARBINARY的有效长度:

SQL Server: 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之前将长度指定为0到255之间的值   5.0.3和5.0.3及更高版本中的0到65,535。

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