이 MySQL 오류가 발생하지 않도록 하려면 어떻게 해야 합니까? COLUMN NAME에 대한 잘못된 열 지정자?
이 MySQL 오류가 발생하지 않도록 하려면 어떻게 해야 합니까? topic_id 열 지정자가 잘못되었습니다.
MySQL 오류...
#1063 - Incorrect column specifier for column 'topic_id'
SQL 스키마...
CREATE TABLE discussion_topics (
topic_id char(36) NOT NULL AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
사용하기AUTO_INCREMENT
열을 다음과 같이 정의해야 합니다.INT
또는 부동 소수점 유형이 아닌CHAR
.
AUTO_INCREMENT
부호 없는 값만 사용하므로 사용하기 좋습니다.UNSIGNED
또한;
CREATE TABLE discussion_topics (
topic_id INT NOT NULL unsigned AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
그auto_increment
특성은 숫자 열(점 및 부동 소수점)에 대해서만 작동하며, 그렇지 않습니다.char
열:
CREATE TABLE discussion_topics (
topic_id INT NOT NULL AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
문서 인용:
일부 특성은 일부 데이터 유형에 적용되지 않습니다.
AUTO_INCREMENT
정수 및 부동 소수점 유형에만 적용됩니다.DEFAULT
에는 적용되지 않습니다.BLOB
또는TEXT
종류들.
당신의 경우, 당신은 지원하려고 합니다.AUTO_INCREMENT
에 대한 수식어.char
기둥.이 문제를 해결하려면 드롭 중 하나를 선택합니다.AUTO_INCREMENT
전체적으로(즉, 애플리케이션 수준에서 고유한 ID를 생성해야 함) 또는 그냥 변경합니다.topic_id
관련 정수로 입력합니다.
참고로, 다음을 사용하는 것은 거의 의미가 없습니다.char(36)
게시물 수를 저장하려면 해당 열의 유형도 변경해야 합니다.정수 오버플로를 방지하기 위해 이 길을 가는 것처럼 보이지만, 만약 당신이 다음 이상을 다루고 있습니다.18446744073709551615
게시물(저장할 수 있는 가장 큰 수)BIGINT UNSIGNED
칼럼) 하나의 주제에서, 당신은 아마도 당신 쪽에서 훨씬 더 큰 문제를 가지고 있을 것입니다.
자동으로 증분할 수 없습니다.char
가치.그럴 것 같네요.int
또는long
(첨부 또는 부동 소수점).이걸로 해보세요.
CREATE TABLE discussion_topics (
topic_id int(5) NOT NULL AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
이것이 도움이 되길 바랍니다.
저도 같은 문제를 겪고 있었는데 Long 타입을 사용하고 있었습니다.저는 INT로 바꿨고 저에게 효과가 있었습니다.
CREATE TABLE lists (
id INT NOT NULL AUTO_INCREMENT,
desc varchar(30),
owner varchar(20),
visibility boolean,
PRIMARY KEY (id)
);
언급URL : https://stackoverflow.com/questions/26134912/how-can-i-avoid-getting-this-mysql-error-incorrect-column-specifier-for-column-c
'programing' 카테고리의 다른 글
주입 및 리소스 및 자동 배선 주석 (0) | 2023.07.30 |
---|---|
PowerShell의 'forach' 루프에서 해시 테이블 값 업데이트 (0) | 2023.07.30 |
데이트 시간(2008-09-01 12:35:45)의 정규식 패턴은 무엇입니까? (0) | 2023.07.30 |
이 문제를 해결하기 위해 복잡한 선택 쿼리가 있습니까? (0) | 2023.07.30 |
두 줄의 텍스트 오버플로 줄임표 (0) | 2023.07.30 |