2010-03-07 2 views
1
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에 따르면 '최대'근처의 9 번 줄에서 오류가 발생합니다.varchar (max) 라인의 MySQL 코드에 어떤 문제가 있습니까?

답변

3

VARCHAR(MAX)은 SQL 언어에 대한 MS SQL Server 확장 기능이며 mysql에는 존재하지 않습니다. 거기에 숫자를 넣으면 당신은 황금색이 될 것입니다. 내가 값을 제거하고 수동;에 링크를 넣어 내 대답을 편집 한 - 당신은 당신의 코멘트를 게시 할 때

2

"max"은 content 열에 입력 할 수있는 최대 문자 수에 대한 유효한 값이라고 생각하지 않습니다. 숫자 값을 지정해야합니다. 그것은 "content"열위한 최선의 데이터 유형이 될하지 않을 수 있습니다 의미 -

그러나이 varchar 제한된 최대 길이 (세부 사항에 대한 varchar page in the MYSQL's manual 참조)을 가지고 있습니다.

possibibly 더 나은 솔루션은 TEXT 데이터 유형 중 하나를 사용할 수 있습니다 :

... 
content TEXT not null, 
... 
많은 이상 VARCHAR보다 문자열을 포함 할 수 있습니다

TEXT 열; 자세한 내용은 10.4.3. The BLOB and TEXT Types을 참조하십시오.

+0

@Lex 난 그냥 정확한 값에 대한 매뉴얼을 검색했다 기본적으로 varchar의 최대 크기는 행의 다른 열의 크기에 따라 달라집니다. –

관련 문제