Zastanawiam się, czy można zmienić wartość ENUM
w tabeli, tak aby we wszystkich wierszach, w których wspomniana jest wartość ENUM
, zmiana została dokonana jako dobrze.Zmiana wartości wartości ENUM MySQL, w całej tabeli
Odpowiedz
Jeśli chcesz zmienić wartość wyliczenia:
Załóżmy, że Twój stary enum było:
ENUM('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese')
to zmienić zastosowanie:
-- Add a new enum value
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese', 'French');
-- Update the table to change all the values around.
UPDATE tablename SET fieldname = 'French' WHERE fieldname = 'Frenchdghgshd';
-- Remove the wrong enum from the definition
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Chinese', 'German', 'Japanese', 'French');
MySQL będzie prawdopodobnie przejść przez wszystko wiersze w twoim stole próbują uaktualnić rzeczy, słyszałem historie o planowanej optymalizacji wokół tego, ale nie jestem pewien, czy tak się rzeczywiście stało.
Myślisz, że MySQL automatycznie przejdzie przez bazę danych i wprowadzi potrzebne zmiany? Myślałem, inną metodą byłoby użycie 'ALTER' do * dodanie * nowej wartości' ENUM' do zestawu, a następnie użycie 'UPDATE' w celu zastąpienia dowolnych wystąpień w tabeli starej wartości, z nową wartością. Następnie użyj "ALTER", aby usunąć starą wartość "ENUM". Myślisz, że to zadziała? – stefmikhail
Wyliczenie naprawdę nie zapisuje ciągu znaków w polu, w którym po prostu używa najmniejszej liczby całkowitej, która będzie zawierać wartości w wyliczeniu, zwykle tinyint. Jeśli zmienisz ciągi znaków w wyliczaniu mysql, często czas nie musi nic robić w wierszu – Johan
, więc po prostu kojarzy go przez liczbę całkowitą? – stefmikhail
- 1. MySQL Zmiana kolumny ENUM wartość
- 2. mysql zastąpić wartości w tabeli
- 3. Wybieranie MySQL na podstawie wartości ENUM
- 4. Jak wybrać numer wartości typów ENUM w MySql?
- 5. Utrzymywanie dużej tabeli unikalnych wartości w MySQL
- 6. Zamiana wartości kolumn w MySQL
- 7. jak porównać wartości enum
- 8. EnumMap vs Enum wartości
- 9. Uzyskiwanie wartości wielu wierszy z tabeli MySQL
- 10. Jak zmienić wartości domyślne kolumny tabeli mysql?
- 11. TINYINT kontra ENUM (0, 1) dla wartości logicznych w MySQL
- 12. Zmiana wartości w HashSet
- 13. Zmiana wartości w SQLite3
- 14. Mysql Wybierz wartości wyliczeniowe
- 15. Zmiana komórki tła tabeli w zależności od wartości
- 16. Zmiana koloru wiersza z wartości komórki w tabeli wizualizacji google
- 17. Dokumentowanie wartości enum z doxygen
- 18. sqlite3 zmiana domyślnej wartości kolumny
- 19. Definiowanie wartości ENUM w .plist w Xcode
- 20. Zmiana aktualnej liczby wartości Auto Increment w MySQL?
- 21. MySQL oddzielonych przecinkami wartości
- 22. Zmiana wartości textNode
- 23. mysql grupa przecinkiem rozdzielone wartości
- 24. Zmiana wartości NSSlider programowo
- 25. Zmiana wartości w pliku machine.config
- 26. Zmiana wartości zmiennoprzecinkowej w exe
- 27. Zmiana wartości R.String Programowo
- 28. Mysql, przechowywanie wielu wartości w jednej kolumnie z innej tabeli
- 29. MySql: usunąć wiersze tabeli w zależności od wartości duplikatów kolumn?
- 30. Wyświetl wartości pola tabeli Mysql w polu Wybierz
Użyj instrukcji aktualizacji? 'UPDATE table1 SET enum1 = 'male' GDZIE enum1 = 'female'' – Johan
@Johan - A to nie przysporzy żadnych problemów? Zgaduję, że musiałoby się to dokonać przed użyciem 'ALTER', aby zmienić samą wartość" ENUM ". Ale czy byłoby to dozwolone? Zastanawiam się, bo myślałem, że tylko określone wartości mogły zostać wybrane w kolumnie wyliczeniowej? A jeśli nowa wartość nie została jeszcze określona ... – stefmikhail
Dokonaj najpierw zmiany, a następnie aktualizacji, nie możesz ustawić wyliczenia na wartość, która nie została ustawiona w instrukcji 'create table' /' alter table'. – Johan