我的MySQL代码在varchar(max)行中出了什么问题?

时间:2010-03-07 12:35:52

标签: mysql sql

create table snippet(
  id int not null auto_increment,
  primary key(id),
  idlanguage int not null,
  foreign key(idlanguage) references language(id),
  iduser int not null,
  foreign key(iduser) references user(id),
  title varchar(200) not null,
  content varchar(max) not null,
  rating int,
  creationdate datetime
);

根据PHPMyAdmin,我在'max)'附近的第9行收到错误。

2 个答案:

答案 0 :(得分:3)

VARCHAR(MAX)是SQL语言的MS SQL Server扩展 - 它在mysql中不存在。在那里放一个数字,你将是金色的。

答案 1 :(得分:2)

我不认为“max”是可以放入content列的最大字符数的有效值:您应该指定一个数值。

但请注意,varchar的最大长度有限(有关详细信息,请参阅varchar page in the MYSQL's manual - 这意味着它可能不是最佳数据类型“content”栏目。

可能更好的解决方案可能是使用TEXT数据类型之一:

...
content TEXT not null, 
...

TEXT列可以包含比varchar长很多的字符串;有关更多信息,请参阅10.4.3. The BLOB and TEXT Types

相关问题