|
|
|
| Пример:
Когда просматриваю таблицу в уже созданной БД, (на команду show create table forum) MySQL пишет в самом конце:
А мне нужно cp1251
я конечно могу при создании таблицы происать, что эта таблица должна иметь кодировку cp1251, но это же надо прописывать при создании каждой таблицы одно и тоже....
Можно ли изменить DEFAULT CHARSET, что он сразу создавал таблицы в кодировке cp1251? | |
|
|
|
|
|
|
|
для: Mpak
(26.10.2006 в 06:27)
| |
ALTER DATABASE `ИмяБД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
|
| |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 09:13)
| | а можно таким же образом сделать ALTER TABLE? т.е. одну или две таблицы только поменять,
а не всю базу? не хочется заново создавать таблицы, а потом переносить в них данные... | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 10:26)
| |
ALTER TABLE tab DEFAULT CHARSET 'cp1251'
|
Только нужно менять типы столбцов, то это не поможет, вероятно.
Тут надо точнее знать, чего именно хочется достичь. | |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 11:33)
| | у меня шеф с ума сходит. достал меня с сортировкой по алфавиту. таблица с фирмами была
с CHARSET=latin1 (у меня на локальном нет greek, поэтому создаю с default). теперь я, наконец,
с помощью этого форума и собственных опытов на Удобном_Хостинге научилась создавать
таблицы с нужной кодировкой и даже выводить из них не ???, а нормально читаемые слова.
теперь у меня есть две одинаковых таблицы - одна с данными, но в старой кодировке latin1,
вторая чистая, но с нужной кодировкой greek. теперь шеф, который сначала было согласился,
что пора начинать новую базу (та очень старая, 2000 года) и всю регистрацию заносить в
новую таблицу, требует, чтоб я перенесла ВСЕ фирмы из старой таблицы (где они в latin1) в
новую, которая greek! боюсь, что перенесутся они в таком виде "???". к тому же надо писать
специальный скрипт, потому что просто copy+paste не пройдет, очень много записей. | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 12:03)
| | Эта база, которую надо переделывать - с нее можно дамп снять? | |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 12:06)
| | можно. переделывать надо не всю базу, а одну таблицу (или 3, если еще и районы взять) | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 12:15)
| | Тогда я бы сперва снял дамп. И попробовал бы всю эту процедуру выполнить на локальной машине. И убедившись, что всё Ок и никакие данные не потеряны, выбрал бы один из вариантов:
1. Выполнить то же самое на сервере.
2. Снять дамп с локальной машины и залить его на сервер.
В зависимости от размера базы и возможностей исполнения дампа на сервере. | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 12:15)
| | три так три, дамп-то необязательно весь снимать. | |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 12:28)
| | локальный отпадает. там нет ни greek ни cp1253. все надо делать на сервере. я пока другим
занимаюсь, но попробую обязательно (не для шефа, самой интересно). | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 13:01)
| | ничего не вышло. все греческие слова стали вопросительными знаками :( | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 15:05)
| | А в дампе они нормально выглядят?
Кстати, какая версия у MySQL-сервера? | |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 15:33)
| | ну да. теперь начинаем спрашивать про версии... :( кстати, а что такое MySQL-server? это база? | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 15:51)
| | >ну да. теперь начинаем спрашивать про версии... :(
Вообще-то первый мой вопрос был про дамп.
Потому, что если нормального дампа, на который можно откатиться, нету, то применять команды вроде ALTER - довольно дорогое развлечение.
В любом случае, делать это на боевой БД(таблице), не проверив на тестовой , не предлагал.
>кстати, а что такое MySQL-server? это база?
Сервер - это сервер. На нем может быть много разных баз.
Я имел в виду это то, что выдает запрос | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 15:51)
| | Да, это процесс на сервере, обслуживающий базы данных - именно с ним устанавливают соединения клиенты MySQL (консольный mysql, PHP, Web-приложения вроде phpMyAdmin). | |
|
|
|
|
|
|
|
для: cheops
(26.10.2006 в 16:12)
| | 4.1.20
да ладно, я не обижаюсь. у меня есть эта таблица и на локальном. просто заморочно ее теперь
обратно на сервер заливать. там не будет некоторых последних изменений, которые я on-line
делала. а вообще мне эта таблица не нужна, старье. это шефу жалко ее выкинуть. он у нас как
Плюшкин тащит всякую гадость, а потом удалять не дает. а если очень настойчиво просить,
то разрешит, но перед удалением скажет - а сделай-ка копию с того, что ты удаляешь... :O | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 16:18)
| | да.. некрасиво получилось... сочувствую...
Вообще-то я удивлен. Я Вас считал (и собственно, продолжаю считать - один случай ни о чем не говорит) эдаким зубром веб-программирования с весьма широкими знаниями и навыками и громадным опытом, всяко перекрывающим мой даже не в разы, а на порядки.
И те строки насчет дампа, неоходимости локального теста, писал просто по привычке, в основном для новичков, попади те в аналогичную ситуацию, но никак не для Вас.
Что я могу сказать.... если и вправду таблица не уникальная, то поздравляю. Вы приобрели крайне полезный опыт ценой невысокой, но достаточной для закрепления оного в памяти. | |
|
|
|
|
|
|
|
для: Trianon
(26.10.2006 в 16:37)
| | как мне сказал один клиент - ты все хорошо делаешь, когда не кладешь в миксер (типа когда не
торопишься). ну поторопилась. когда стоят над душой и торопят, так всегда и получается. :) | |
|
|
|
|
|
|
|
для: elenaki
(26.10.2006 в 12:03)
| | В latin1 , если я правильно понимаю, греческого алфавита нет.
Поэтому, если у Вас стоит latin1, это означает лишь, что данные лежат в какой-то однобайтовой кодировке, соответствующей по порядку символов второй половине расширенного latin-набора. Так вот - какая она? cp1253?
Обычно, если необходимо поставить корректную кодировку такой таблице, то сперва нужным столбцам назначается кодировка binary, а следующим шагом уже ставится правильная (напр. cp1253) .
Смысл этих шагов в следующем. При изменении кодовой страницы на (или с) binary фактически сервер не выполняет перекодировку содержимого таблицы, а лишь меняет признаки в метаданных таблицы. | |
|
|
|