2010-02-25 20 views
17

Ho riscontrato un problema in quanto ho già una chiave primaria composita in una tabella MYSQL. Ma ora ho aggiunto un'altra colonna a quella tabella e, a causa di alcune modifiche ai requisiti, devo modificare quella chiave primaria composita in modo tale che ho bisogno di aggiungere quella colonna menzionata in precedenza a tale elenco di chiavi primarie composite. Qualcuno può dirmi come modificare quella tabella senza rilasciare la chiave primaria composita esistente. Lo sto facendo in un progetto Railscome aggiungere una nuova colonna alla chiave primaria composita esistente

+0

noti che ho chiavi esterne ad alcune delle colonne che sono chiave primaria – nash

+0

Una chiave esterna composta a una chiave primaria parziale? È un brutto mojo. Dovresti davvero passare a una chiave primaria con incremento automatico. – MindStalker

+0

L'eliminazione di una chiave non dovrebbe eliminare i valori: perché non riesci a eliminare il PK? – reech

risposta

25

Non è possibile modificare la chiave primaria. Devi cadere e riaggiungerlo:

ALTER TABLE MyTable 
    DROP PRIMARY KEY, 
    ADD PRIMARY KEY (old_col1, old_col2, new_col); 
+0

Questo è il modo per farlo se c'è qualcosa che ti impedisce di rilasciare la chiave primaria – PrashanD

0

ma se non esiste una chiave? esempio:

ALTER TABLE xxxx ADD id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(id,id2,id3); 
Problemi correlati