mysql遷移達夢列長度超出定義的簡單解決方法
一、問題概述
mysql遷移達夢遇到列長度超出定義,錯誤如下
造成此錯誤原因是達夢存放不下mysql遷移過來的字符串,在早期版本8.1.3.162之前,通過設置length_in_char=1來進行規(guī)避,但是這種方式實際上擴大了數(shù)據(jù)精度,造成能存放超過設置的長度的數(shù)據(jù)。
在8.1.3.162版本之后,取消了此參數(shù),length_in_char無法設置 只能為0 ,因為達夢底層是以字節(jié)單位存儲,mysql是以字符,通過遷移工具遷移到達夢會出現(xiàn)varchar char長度不夠的問題。
二、解決辦法
2.1、問題復現(xiàn)
length_in_char=0的情況下(新版本取消,此參數(shù)只能是0) 字符集UTF8情況下
比如 mysql varchar(10) 能存放10個中文 ,到達夢varchar(10)只能存放三個中文,UTF8字符集 一個中文占用三個字節(jié)。
但是可以通過 將varchar(10)修改成varchar(10 char)強制為字符存儲,到達夢也能存放10個中文字符
2.2 遷移工具設置
在遷移工具中設置映射關(guān)系
第一步:設置數(shù)據(jù)類型映射
第二步:配置映射關(guān)系
在選擇遷移對象界面查看表結(jié)構(gòu)是否轉(zhuǎn)換
第三步:開始遷移
總結(jié)
到此這篇關(guān)于mysql遷移達夢列長度超出定義解決方法的文章就介紹到這了,更多相關(guān)mysql遷移達夢列長度超出定義內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql支持的數(shù)據(jù)類型(列類型總結(jié))
MySQL支持大量的列類型,它可以被分為3類:數(shù)字類型、日期和時間類型以及字符串(字符)類型。本節(jié)首先給出可用類型的一個概述,并且總結(jié)每個列類型的存儲需求,然后提供每個類中的類型性質(zhì)的更詳細的描述2016-12-12詳解遠程連接Mysql數(shù)據(jù)庫的問題(ERROR 2003 (HY000))
本篇文章是對遠程連接Mysql數(shù)據(jù)庫的問題進行了詳細的分析介紹,需要的朋友參考下2013-06-06MySQL 數(shù)據(jù)庫兩臺主機同步實戰(zhàn)(linux)
MySQL支持單向、異步復制,復制過程中一個服務器充當主服務器,而一個或多個其它服務器充當從服務器。主服務器將更新寫入二進制日志文件,并維護日志文件的一個索引以跟蹤日志循環(huán)。2009-04-04MySQL中SQL連接操作左連接查詢(LEFT?JOIN)示例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中SQL連接操作左連接查詢(LEFT?JOIN)的相關(guān)資料,左連接(LEFT?JOIN)是SQL中用于連接兩個或多個表的一種操作,它返回左表的所有行,并根據(jù)連接條件從右表中匹配行,需要的朋友可以參考下2024-12-12