MySQL недопустимая смесь параметров сортировки для операции '=' на простой INSERT

0

В SELECT и INSERT * SELECT есть много вопросов о смешивании сортировки. Mine - это простой INSERT ничего не добавлено, кроме данных.

Ошибка, возникшая в процессе:

Недопустимое сочетание сортировок (utf8_unicode_ci, IMPLICIT) и (utf8_general_ci, IMPLICIT) для операции '='

Все имена полей и имена таблиц были упрощены. Выполняется запрос:

INSERT INTO table1 ('a','b','c','d','e','f','g','h','i','j') VALUES (?,?,?,?,?,?,?,?,?,?);'''

Он был подготовлен для получения некоторых данных, которые были связаны с процессом Java с JDBI.

В базовых таблицах нет ничего странного. Их DDL выглядят следующим образом.

CREATE TABLE 'table1' (
  'a' varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  'b' varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,
  'c' varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  'd' varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  'e' varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  'f' int(11) DEFAULT NULL,
  'g' text COLLATE utf8_unicode_ci,
  'h' bigint(20) DEFAULT NULL,
  'i' bigint(20) DEFAULT NULL,
  'j' datetime DEFAULT NULL,
  'k' timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY ('a','e'),
  KEY 'c' ('c','d'),
  CONSTRAINT 'fk_1' FOREIGN KEY ('a') REFERENCES 'table2' ('a2'),
  CONSTRAINT 'fk_2' FOREIGN KEY ('c', 'd') REFERENCES 'table3' ('a3', 'b3')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

CREATE TABLE 'table2' (
  'a2' varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  'b2' varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  'c2' mediumtext COLLATE utf8_unicode_ci,
  'd2' mediumtext COLLATE utf8_unicode_ci,
  'e2' bigint(11) DEFAULT '0',
  PRIMARY KEY ('a2')
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

CREATE TABLE 'table3' (
  'a3' varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  'b3' varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY ('a3','b3')
) ENGINE=InnoDB DEFAULT CHARSET=utf8

Как видно, абсолютно ничего не известно о сопоставлении, которое я могу понять. Возможно ли, что данные, поступающие из java-мира, вызывают это? Может ли это быть связано с текущими переменными сеанса связи?


ОБНОВИТЬ

Я забыл добавить версию MySQL: 5.6

Я решил эту проблему в моем тесте прогонов перемещения всех полей сортировки по умолчанию, а таблица параметров сортировки для utf8_general_ci на table1. Тем не менее, это неприемлемое решение проблемы, и она не приближается к тому, чтобы ответить, как может быть смешанное смешивание в простом заявлении INSERT?

Теги:
jdbi

1 ответ

0
Лучший ответ

Я нашел преступника. В этой таблице есть TRIGGER, который ссылается на другую таблицу из другой схемы. Конфликт существует в операторах триггера, который не помогает, чтобы сообщение об ошибке не делало намека на такой факт.

Это ответы

как может быть смешанное смешивание в простой инструкции INSERT?

Существует TRIGGER, сопровождающий INSERT

Ещё вопросы

Сообщество Overcoder
Наверх
Меню