Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> usuwanie/modyfikacja UNIQUE KEY
mihmih
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 1
Dołączył: 4.06.2015

Ostrzeżenie: (0%)
-----


witam,

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:

  1. ALTER TABLE tbl_name
  2. 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:

  1. 'pozycje_zakupowe', 'CREATE TABLE `pozycje_zakupowe` (\n
  2. `ID_poz_zakupowej` int(10) NOT NULL AUTO_INCREMENT,\n
  3. `ID_rodzaju_poz_zak` int(10) NOT NULL,\n
  4. `wymiar` varchar(100) NOT NULL,\n
  5. `ID_jednostki_zak` int(10) NOT NULL,\n
  6. `indeks_sprzedajacego` varchar(100) DEFAULT NULL,\n
  7. `uwagi` varchar(100) DEFAULT NULL,\n
  8. `ID_sprzedajacego` int(10) NOT NULL,\n
  9. `ID_materialu` int(10) DEFAULT NULL,\n
  10. `przelicznik` decimal(65,5) NOT NULL,\n
  11. `ID_waluty` int(10) NOT NULL,\n
  12. `kto_dodal` varchar(100) DEFAULT NULL,\n
  13. `kto_zmienil` varchar(100) DEFAULT NULL,\n
  14. `waga_pozycji` decimal(65,2) DEFAULT NULL,\n
  15. `ID_jednostki_zam` int(10) NOT NULL,\n
  16. `modifiedtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,\n
  17. `createdtime` datetime DEFAULT CURRENT_TIMESTAMP,\n
  18. `magazyn` bit(1) DEFAULT NULL,\n
  19. PRIMARY KEY (`ID_poz_zakupowej`),\n
  20. UNIQUE KEY `unique_index` (`ID_rodzaju_poz_zak`,`wymiar`,`ID_sprzedajacego`,`ID_materialu`),\n
  21. KEY `ID_jednostki_zak` (`ID_jednostki_zak`),\n
  22. KEY `ID_sprzedajacego` (`ID_sprzedajacego`),\n
  23. KEY `ID_materialu` (`ID_materialu`),\n
  24. KEY `ID_waluty` (`ID_waluty`),\n
  25. CONSTRAINT `pozycje_zakupowe_ibfk_2` FOREIGN KEY (`ID_jednostki_zak`) REFERENCES `jednostki` (`ID_jednostki`),\n
  26. CONSTRAINT `pozycje_zakupowe_ibfk_3` FOREIGN KEY (`ID_rodzaju_poz_zak`) REFERENCES `rodzaje_pozycji_zakupowych` (`ID_rodzaju_pozycji_zakupowej`),\n
  27. CONSTRAINT `pozycje_zakupowe_ibfk_4` FOREIGN KEY (`ID_sprzedajacego`) REFERENCES `zamawiajacy` (`ID_zamawiajacego`),\n
  28. CONSTRAINT `pozycje_zakupowe_ibfk_5` FOREIGN KEY (`ID_materialu`) REFERENCES `gatunki_materialow` (`ID_gatunku_materialu`),\n
  29. CONSTRAINT `pozycje_zakupowe_ibfk_6` FOREIGN KEY (`ID_waluty`) REFERENCES `waluty` (`ID_waluty`)\n
  30. ) 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.

Ten post edytował mihmih 12.04.2016, 13:05:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 17:04