Oracle数据向Mysql迁移,报错“Key specification without a key length”问题解决

# 问题描述:

使用navicat数据传输,从oracle向mysql导入数据报错 Key specification without a key length

# 问题解决

参考:sql - MySQL error: key specification without a key length - Stack Overflow

两种情况:

1. Text / BLOB 类型

Text / BLOB类型做主键,需要设置主键长度

2. 非 Text / BLOB 类型

VARCHAR类型做主键,MySQL限制最大长度为256

如果长度超过256,MySQL会将类型转为SMALLTEXT,导致报错

# 补充:

varchar, nvarchar对比 

Varchar(n):n介于1-8000之间,存储大小为输入数据的字节实际长度

NVarchar(n):n介于1-4000之间,存储大小为输入字符个数的两倍(N表示存储的为Unicode类型字符,所有字符都用双字节表示,英文中文均为双字节)

结论:字段值为英文,选择varchar;字段值多为中文(双字节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值