|
|
|
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC)
|
|||
|---|---|---|---|
|
#18+
Получил такую ошибку при выполнении обычного sql-запроса 'UPDATE ...'. Посмотрел в Инете - очень много лабуды про кодировки и все не по делу. После некоторых экспериментов и раздумий причину ошибки нашел - все дело было в коде триггера, который срабатывал при изменении таблицы: Код: sql 1. После изменения кода ошибка "ушла". Но вопрос остался - почему сервер не выдает нормальную ошибку?! Кстати, очень старая ошибка - этот запрос выдаст аналогичную ошибку: Код: sql 1. А вот такой запрос сработает нормально: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2016, 22:40 |
|
||
|
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC)
|
|||
|---|---|---|---|
|
#18+
Прошу прощения - MySQL 5.6.14 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2016, 22:43 |
|
||
|
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC)
|
|||
|---|---|---|---|
|
#18+
OlegROA, какая ошибка по-твоему нормальная? NullPointerException? ЗЫ: На правах первоапрельской шутки: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2016, 00:16 |
|
||
|
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC)
|
|||
|---|---|---|---|
|
#18+
скукотищаOlegROA, какая ошибка по-твоему нормальная? NullPointerException?Нормальное сообщение об ошибке должно привести меня, как разработчика, максимально близко к месту возникновения ошибки и как можно точнее дать понять причину этой ошибки. В данном случае ошибка "отсылает" меня очень-очень далеко как от самого места ее возникновения, так и в плане понятия причины этой ошибки! Если посмотреть в Инете ссылки на подобную ошибку, то все советы по ее решению сводятся к исправлению кодировки как в настройках сервера, так и самой базы. И как это может помочь, если абсолютно везде и все настройки кодировки стоят правильные?! Более того - как это сообщение вообще может мне помочь, если сама ошибка абсолютно не связана с кодировкой?! Кстати, большинство советов по решению этой ошибки мне напомнили советы некоторых так называемых "компьютерных гуру", которые на элементарные проблемы в настройках ОС советуют всегда одно и тоже - переустановка системы!!! Так и здесь - многие советы сводятся к одному - переустановка сервера с установкой правильной кодировки изначально + перезаливка данных в базе сначала в бэкап и после обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2016, 01:03 |
|
||
|
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC)
|
|||
|---|---|---|---|
|
#18+
OlegROA, 1. вам тут никто ничего не должен, ваши намеки на "так называемых" идут нехер сразу. 2. в эмоциональном плане оценки сутуации я с вами согласен... недавно видел такую ошибку.... в результате как-то обошел небольшой переделкой логики (т.е. конкретно эту проблему я НЕ решил). 3. SELECT '0' < CURRENT_DATE() против SELECT CURRENT_DATE() > '0' вполне понятно . В первом случае дата приводится в стринг и стравниваются два стринга. Каким-то образом стринг оказались в разных кодировках/коллациях и получаем ошибку. Во стором варинате первый аргумент задает тип сравнения -- дату. '0' приводится в дату и сравниватся -- ошибки кодировки нет. 4. Почему '0' имеет одну кодировку а CURRENT_DATE() приводится неявно к другой кодировке/коллации -- я без понятия. Очевидно, можно отследить где что задается, толь на уровне базы, толи, сервера, толи таблицы... или может контекста / предыдушего ДМЛ... 5. Одно из простейших (прямолинейное и некрасивое) решение, в явном виде привести обе стороны сравнения в одну коллацию. Вот пример из документации: SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2016, 01:50 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1831968]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 474ms |

| 0 / 0 |
