细节
-
错误
-
状态: Done">完成
-
媒介
-
解决方法: 固定
-
3.0.4
描述
启动:https://bugs.launchpad.net/雷竞技下载官网percona-toolkit/+bug/1400929
错误描述:
使用带有虚拟(持久)列的表的Maria 5.5,它在向新表中插入行时尝试包含这些列。
产生的错误(警告)为-
# pt_online_schema_change:10337 27978 SHOW WARNINGS #重试:3671 27978 Try code failed: connecting rows caused a MySQL error 1906: #级别:警告#代码:1906 #消息:指定的值为计算列“is_aff_trans”在表“_transactions_new”忽略了
建议的行为是它应该跳过插入列
是持久的,并让他们重新计算时,他们被插入
玛丽亚不是. .
如何繁殖:
mysql> CREATE TABLE ' new_table ' (-> ' ID 'int(11) NOT NULL, -> ' Column2 'int(11)默认NULL, -> ' Column3 'int(11) GENERATED ALWAYS AS ((' Column2 ' + 1)) STORED, -> PRIMARY KEY (' ID ') ->) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;mysql> INSERT INTO ' new_table ' (' ID ', ' Column2 ') VALUES' 1 ',' 2 ');mysql> \q Bye .查询OK, 1行影响(0.07秒)
(电子邮件保护):~/build/ps-5.7/mysql-test$ ~/build/雷竞技下载官网percona-toolkit/bin/pt- online-schema-change——alter 'ADD COLUMN ' Column4 ' VARCHAR(45) NULL AFTER ' Column3 " D=test,t=new_table,h=127.0.0.1,P=13001,u=root #一个软件更新是可用的:# *当前版本为雷竞技下载官网Percona::Toolkit是3.0.1操作,尝试,等待:analyze_table, 10, 1 copy_rows, 10, 0.25 create_triggers, 10, 1 drop_triggers, 10, 1 swap_tables, 10, 1 update_foreign_keys, 10, 1退出没有改变' test '。' new_table ',因为没有指定——dry-run和——execute。使用前请仔细阅读工具文档这工具。(电子邮件保护)~/build/ps-5.7/mysql-test$ ~/build/p雷竞技下载官网ercona-toolkit/bin/pt-online-schema-changeVARCHAR(45) NULL AFTER ' Column3 'D=test,t=new_table,h=127.0.0.1,P=13001,u=root——execute没有slave看到——recursion-method如果主机Thinkie有奴隶。没有检查slave lag,因为没有找到slave,并且没有指定——check-slave-lag。操作,尝试,等待:analyze_table, 10,1 copy_rows, 10,0.25 create_triggers, 10,1 drop_triggers, 10,1 swap_tables, 10,1 update_foreign_keys, 10,1正在修改' test ' . ' new_table '…创建新表格创建新表测试。_new_table_new OK。改变新表格改变“测试”。“_new_table_new”好了。2017-09-29T15:51:18创建触发器…2017-09-29T15:51:19已创建触发器OK。2017-09-29T15:51:19复制大约1行…2017-09-29T15:51:19删除触发器…2017-09-29T15:51:19 drop triggers OK。2017 - 09 - 29 t15:51:19下降新表格2017 - 09 - 29 t15:51:19下降新表好。“测试”。' new_table '没有改变。2017-09-29T15:51:19从“test”中复制行错误。' new_table '到' test '。' _new_table_new ': 2017-09-29T15:51:19 DBD::mysql::st execute failed:指定的值为生成的列“Column3”在表“_new_table_new”是不允许的。[为声明"INSERT LOW_PRIORITY IGNORE INTO ' test ' . "' _new_table_new ' (' id ', ' column2 ', ' column3 ') SELECT ' id ', ' column2 ', ' column3 ' FROM ' test '。' new_table '锁定在共享模式/*pt-online-schema-change 12426 copy table*/"/home/sveta/build/perco雷竞技下载官网na-toolkit/bin/pt-online-schema-change行10924。