sourcecode

SQL 테이블 정의가 잘못되었습니다. 자동 열은 하나만 있을 수 있으며 키로 정의해야 합니다.

copyscript 2022. 9. 5. 23:11
반응형

SQL 테이블 정의가 잘못되었습니다. 자동 열은 하나만 있을 수 있으며 키로 정의해야 합니다.

아래 SQL 명령을 실행하면 항상 다음 오류가 발생합니다.

잘못된 SQL: CREATE TABLE ms_account (계정 ID INT NOT NULL auto_increment, 계정 이름 VARCHAR(50) NOT NULL, 계정 소유자 VARCHAR(20) NOT NULL, 계정 잔액 DECARCHAR(10), NULL, NULL VARCHARID 없음smallint NOT NULL, locked smallint NOT NULL, primary key accountid(bankid,accountid) ; : 테이블 정의가 잘못되었습니다.자동 열은 1개뿐이며 키로 정의해야 합니다.

SQL

"CREATE TABLE {$utcv_db_prefix}account (".
"accountid INT NOT NULL auto_increment,".
"accountname VARCHAR(50) NOT NULL,".
"kindofaccount SMALLINT NOT NULL,".
"accountowner VARCHAR(20) NOT NULL,".
"accountcurrency VARCHAR(10) NOT NULL,".
"accountbalance DECIMAL(15,2) NOT NULL,".
"bankid VARCHAR(8) NOT NULL,".
"createdate INT NOT NULL,".
"deletedate INT NOT NULL,".
"changedate INT NOT NULL,".
"deleted SMALLINT NOT NULL,".
"locked SMALLINT NOT NULL,".
"PRIMARY KEY (bankid,accountid)".
") $utcv_db_create_extension;";

이미 프라이머리 키를 추가하려고 했습니다."accountid INT NOT NULL auto_increment,".그러나 이는 여러 개의 기본 키 오류를 반환할 뿐입니다.

auto increment column (그 자체)이 테이블의 프라이머리 키여야 한다고 생각합니다.

편집하다

조금 읽어본 결과, 반드시 기본 키가 아니라 모든 종류의 키가 필요하다고 생각합니다.

"KEY(accountid)" 또는 "Unique KEY(accountid)"를 추가하십시오.

언급URL : https://stackoverflow.com/questions/24087841/sql-incorrect-table-definition-there-can-be-only-one-auto-column-and-it-must-be

반응형