mam w tej chwili na jednej tabeli UNIQUE KEY składający się z 4 kolumn. To znaczy że w tabeli nie mogą się powtarzać rekordy o tych samych wartościach we wszystkich 4 kolumnach. Teraz chciałbym dodać piątą kolumnę do tego zestawu. Czy jest możliwa modyfikacja takiego UNIQUE KEY ?
Jeśli nie to chciałem usunąć UNIQUE KEY i dodać nowy, już z 5 kolumnami. Ale przy próbie usunięcia:
ALTER TABLE tbl_name DROP INDEX index_name;
wyskakuje mi błąd - nie może mi go usunąć przez klucze obce. Czy to znaczy że najpierw muszę usunąć klucze obce w tej tabeli? A co wtedy z relacjami łączonymi tą tabele z innymi?
po wpisaniu komendy SHOW CREATE TABLE pozycje_zakupowe otrzymałem:
'pozycje_zakupowe', 'CREATE TABLE `pozycje_zakupowe` (\n `ID_poz_zakupowej` int(10) NOT NULL AUTO_INCREMENT,\n `ID_rodzaju_poz_zak` int(10) NOT NULL,\n `wymiar` varchar(100) NOT NULL,\n `ID_jednostki_zak` int(10) NOT NULL,\n `indeks_sprzedajacego` varchar(100) DEFAULT NULL,\n `uwagi` varchar(100) DEFAULT NULL,\n `ID_sprzedajacego` int(10) NOT NULL,\n `ID_materialu` int(10) DEFAULT NULL,\n `przelicznik` decimal(65,5) NOT NULL,\n `ID_waluty` int(10) NOT NULL,\n `kto_dodal` varchar(100) DEFAULT NULL,\n `kto_zmienil` varchar(100) DEFAULT NULL,\n `waga_pozycji` decimal(65,2) DEFAULT NULL,\n `ID_jednostki_zam` int(10) NOT NULL,\n `modifiedtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,\n `createdtime` datetime DEFAULT CURRENT_TIMESTAMP,\n `magazyn` bit(1) DEFAULT NULL,\n PRIMARY KEY (`ID_poz_zakupowej`),\n UNIQUE KEY `unique_index` (`ID_rodzaju_poz_zak`,`wymiar`,`ID_sprzedajacego`,`ID_materialu`),\n KEY `ID_jednostki_zak` (`ID_jednostki_zak`),\n KEY `ID_sprzedajacego` (`ID_sprzedajacego`),\n KEY `ID_materialu` (`ID_materialu`),\n KEY `ID_waluty` (`ID_waluty`),\n CONSTRAINT `pozycje_zakupowe_ibfk_2` FOREIGN KEY (`ID_jednostki_zak`) REFERENCES `jednostki` (`ID_jednostki`),\n CONSTRAINT `pozycje_zakupowe_ibfk_3` FOREIGN KEY (`ID_rodzaju_poz_zak`) REFERENCES `rodzaje_pozycji_zakupowych` (`ID_rodzaju_pozycji_zakupowej`),\n CONSTRAINT `pozycje_zakupowe_ibfk_4` FOREIGN KEY (`ID_sprzedajacego`) REFERENCES `zamawiajacy` (`ID_zamawiajacego`),\n CONSTRAINT `pozycje_zakupowe_ibfk_5` FOREIGN KEY (`ID_materialu`) REFERENCES `gatunki_materialow` (`ID_gatunku_materialu`),\n CONSTRAINT `pozycje_zakupowe_ibfk_6` FOREIGN KEY (`ID_waluty`) REFERENCES `waluty` (`ID_waluty`)\n ) ENGINE=InnoDB AUTO_INCREMENT=244 DEFAULT CHARSET=utf8'
rozumiem że muszę najpierw usunąć klucze obce o nazwach:
`pozycje_zakupowe_ibfk_2-6` tak? Potem usunąć UNIQUE KEY i nadać CONSTRAINTY wszystkie jeszcze raz? No i zastanawiam się czym są komendy KEY? Co wprowadzają te 4 linie do mojej tabeli?
Bedę wdzięczny za każdą pomoc.