SQL表定义不正确;只能有一个自动列,并且必须将其定义为键

ntm*_*ntm 3 sql mariadb

如果我运行下面的 SQL 命令,我总是会收到此错误:

无效 SQL:CREATE TABLE ms_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,删除 SMALLINT NOT NULL,锁定 SMALLINT NOT NULL,PRIMARY KEY accountid (bankid,accountid)) ; :表定义不正确;只能有一个自动列,并且必须将其定义为键

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;";
Run Code Online (Sandbox Code Playgroud)

我已经尝试添加主键,"accountid INT NOT NULL auto_increment,".但这只返回错误多个主键

Phi*_*ler 8

我相信您的自动增量列(本身)必须是表的主键。

编辑

经过一番阅读后,我认为它需要是任何类型的键,不一定是主键。

尝试添加“KEY(accountid)”或“UNIQUE KEY (accountid)”。