2014-03-12 12 views
0

我有這個表刪除列標記爲主要重點的MySQL

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}有一個不同的值,所以首先我需要刪除主鍵:

alter table tipo_centro drop primary key; 

但它失敗,錯誤代碼1025

任何人知道如何解決這一問題?

+0

錯誤1025可以指向一個事實,即您要刪除主鍵實際上是在數據庫中的其它表的外鍵引用。這可能是你的情況嗎?當然 –

+0

,還沒有看到你創建表結構??? – leccionesonline

回答

0

一號線:

ALTER TABLE tipo_centro DROP PRIMARY KEY,ADD PRIMARY KEY(id

如果ID是唯一的主要ü要

+0

我已經試過了,錯誤:重複的初級入門「1」。 – leccionesonline

+0

是u必須首先刪除數據bcoz如果u不丟棄數據,然後使ID初級它仍然是有重複的值,所以用這個命令後,「DELETE * FROM表名;」 –

0

試試這個說法,因爲它是一個複合主鍵必須首先將約束放在表上,然後將該列添加到主鍵。試試看:) :)

ALTER TABLE dbo.tipo_centro 
DROP CONSTRAINT tipo_centro_PK 
0

沒關係。我創建了一個只有我需要的2列的新表tipo_centro_lite。 無論如何,謝謝大家!