View Full Version : [SQL] Alter Table Difficile
holymind
10-05-2011, 17:37
Ho una tabella molto popolato con chiave primaria che si chiama
id che e' un integer.
Voglio farlo diventare un varchar(15) come devo fare?
Il DB e' Oracle 9.2.0.7.0.
Ho provato ALTER TABLE USRMUTI.BPM_PROCESS
MODIFY(ID VARCHAR2(15 BYTE));
Ma mi da l'errore
column type incompatible with referenced column type
C'e' un qualche modo per fare questa cosa?
MarcioPG
10-05-2011, 18:23
non conosco oracle ma l'errore dice che "il tipo [dati] colonna [nuovo] è incompatibile con il tipo colonna referenziato".
Ad occhio direi che quel campo è referenziato (foreign key) in una (o più) tabella diversa.
In mysql per farlo occorre disabilitare i controlli sulle foreign key, modificare tutte le ricorrenze del campo (quindi non solo il campo nella tabella principale ma anche tutti i campi ad esso refernziati nelle tabelle collegate) e riabilitare il controllo sulle foreign key...
però non ho idea della sintassi Oracle, in MySQL il comando (non è un comando SQL standard, ovviamente) è FOREIGN_KEY_CHECKS=0 -> FOREIGN_KEY_CHECKS=1...
holymind
10-05-2011, 19:44
Ho provato a togliere tutte le foreign key e non funziona lo stesso.
L'unico modo di riuscirci e' che il campo che diventera' stringa sia sempre valorizzato nullo, pero' vorrei evitare di fare operazioni troppo onerose tipo clonare tutto il db...
holymind
12-05-2011, 17:15
UP
Caldwell83
13-05-2011, 08:46
Non è che nel campo ID hai dei numeri più lunghi di 15 caratteri? :stordita:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.