表定义不正确;只能有一个自动列,它必须被定义为一个键,但它是

时间:2015-01-02 20:18:55

标签: mysql create-table

当我尝试创建表格时,我遇到了这个错误" subcategorias"在MySQL中

  

错误1075(42000):表定义不正确;只可以有一个人   自动列,必须将其定义为键

involucred表是:

CREATE TABLE categorias (
    idcategoria INTEGER(3) NOT NULL AUTO_INCREMENT,
    nombre VARCHAR(32) NOT NULL,
    descripcion VARCHAR(256) NOT NULL,
    logo VARCHAR(128) NOT NULL COMMENT 'url',
    imagen VARCHAR(128) NOT NULL COMMENT 'url',
    recomendado ENUM('0', '1', '2', '3', '4', '5') NOT NULL DEFAULT '0',
    estado ENUM('0', '1') NOT NULL DEFAULT '0',
    PRIMARY KEY (idcategoria)
) ENGINE=InnoDB;
CREATE TABLE subcategorias (
    idcategoria INTEGER(3) NOT NULL,
    idsubcategoria INTEGER(3) NOT NULL AUTO_INCREMENT,
    nombre VARCHAR(32) NOT NULL,
    descripcion VARCHAR(256) NOT NULL,
    logo VARCHAR(128) NOT NULL COMMENT 'url',
    imagen VARCHAR(128) NOT NULL COMMENT 'url',
    recomendado ENUM('0', '1', '2', '3', '4', '5') NOT NULL DEFAULT '0',
    estado ENUM('0', '1') NOT NULL DEFAULT '0',
    PRIMARY KEY (idcategoria, idsubcategoria),
    FOREIGN KEY (idcategoria) REFERENCES categorias(idcategoria)
) ENGINE=InnoDB;

有什么问题?

1 个答案:

答案 0 :(得分:3)

下面:

CREATE TABLE subcategorias (
    idcategoria INTEGER(3) NOT NULL,
    idsubcategoria INTEGER(3) NOT NULL AUTO_INCREMENT,   <---your auto_inc column

    PRIMARY KEY (idcategoria, idsubcategoria),  <--- the PK definition

您的auto_inc列是主键的 PART ,但它本身不是主键。你不能使用这种结构。 auto_inc字段必须是PK定义中的唯一字段。