删除标记为主键mysql的列

时间:2014-03-12 23:21:35

标签: mysql sql

我有这张桌子

CREATE TABLE tipo_centro (
    id integer NOT NULL,
    descripcion VARCHAR(150),
    naturaleza integer NOT NULL,
    comunidad integer NOT NULL,
    provincia integer NOT NULL,
    PRIMARY KEY (id, naturaleza, comunidad, provincia),
    FOREIGN KEY (naturaleza) REFERENCES naturaleza (id),
    FOREIGN KEY (comunidad) REFERENCES comunidad (id),
    FOREIGN KEY (provincia) REFERENCES provincia (id)
) ENGINE innodb;

只是一个样本,这个数据:

id      descripcion                         naturaleza  comunidad   provincia
1   Centro de Enseñanzas de Régimen General     0           0       0
1   Centro de Enseñanzas de Régimen General     0           6       39
1   Centro de Enseñanzas de Régimen General     1           0       0
1   Centro de Enseñanzas de Régimen General     1           6       39

我想删除naturalezacomunidadprovincia列,并且对{id,descripcion}只有一个不同的值,所以首先我需要删除主键:< / p>

alter table tipo_centro drop primary key;

但失败,错误代码为1025

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

一行:

ALTER TABLE tipo_centro DROP PRIMARY KEY,添加主键(id

如果id是您想要的唯一主要

答案 1 :(得分:0)

尝试使用此语句,因为它是复合主键,您必须先将约束放在表上,然后将列添加到主键中。尝试一下,看看:))

ALTER TABLE dbo.tipo_centro
DROP CONSTRAINT tipo_centro_PK

答案 2 :(得分:0)

没关系。我创建了一个新表tipo_centro_lite,只需要我需要的2列。 无论如何,谢谢大家!!