pt-online-schema-change не может изменить таблицу. Это терпит неудачу на этапе, где он копирует строки из исходной таблицы в новую таблицу и выдает ошибку: копирование строк вызвало ошибку MySQL 1048:
Уровень: предупреждение
Код: 1048
Сообщение: столбец 'trans_datetime' не может быть нулевым
определение столбца для 'trans_datetime' из таблицы show create >> trans_datetime
datetime DEFAULT NULL
, который ясно говорит, что он может иметь нулевые значения. Фактически, все строки в таблице, которые я пытаюсь изменить, имеют значение null для 'trans_datetime'
Я выполняю следующую команду pt-osc:
pt-online-schema-change --recursion-method=none --user=test --password=xxxxx
--socket=/mysqldata/mysql.sock --nocheck-replication-filters
--nocheck-alter --execute
--alter "CHANGE COLUMN id id BIGINT(20) NOT NULL, drop primary key,
add primary key (order_id, trans_datetime)"
D=testing,t=temp_test_table
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Любая помощь по этому вопросу будет высоко оценен