关于oracle中数据类型的选择

由于是初学,犯了如下错误:

生成表的主键id时,用当前时间的毫秒值。而在oracle中定义主键id时,用的数据类型是char(32)。在mybatis中通过id取数据怎么也取不出来。想了好几天,本来以为是浏览器中取id是带有空值,于是乎就用trim()函数去除空值,但还是没有查出数据,最后才发现是数据库中的数据类型定义成固定长度了,当前时间的毫秒值只有16位,而char(32)就是固定长度的32位,意思也就是说有16位是空格了,所有没法取出数据。动手将char(32)改成varchar2(32),重新查询,一切正常。

问题是解决了,但是用当前时间的毫秒值作为id是不可取的,于是乎就将其改成了uuid生成的固定长度的32为数作为id。重新将id数据类型改成了char(32)。问题也就随之解决了,大过年的,找了好几天。说多了都是泪啊。

转载于:https://www.cnblogs.com/liuranjsj/p/5185927.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值