发布网友 发布时间:2022-04-09 11:56
共3个回答
懂视网 时间:2022-04-09 16:17
),如下所示:
我就纳闷了,为什么别人设置成int2可以自动增长,我就不行。于是经过一番百度说pg的自动增长类型为serial,于是我将之前的int2
修改为serial2,保存时却提示不存在这个类型,如下图所示:
注意:出现这个提示的时候,是不能保存的,所以不要期待虽然没有该类型,但保存的时候会自动转化成可自动增长的int2
于是我又设置成serial4,serial8都提示不存在此类型,于是我就火了,明明在下拉列表中是有这个类型的啊,为什么会有这样的提示?
气的我只想跳楼........(当然这是不可能的事情,哈哈~~)
我正襟危坐,平复了一下心情,决定重新建一张表,于是我在建新表的时候将id的类型选择成serial2,结果保存成功了,也没有该类型不存在的提示,但是我发现,保存之后的id类型却变成了
int2,这时再往表中插数据的时候就能插入成功,而且id也会自动增长.我虽然很高兴吧,但是也很感慨,原来我所看到的别人的int2并不是实际我所需要的int2,看来一切我们还是不能被表象所
迷惑啊,如果一味的参考别人的东西,甚至复制别人的东西而不懂得自己研究,深入内部,最后被坑的还是自己啊!!!!
好了,下面就将这次坑总结一下:
1、用navicat设置postgresql数据库中表字段自动增长时。字段类型应该在创建表的时候选择成serial2,但保存之后你会发现它变成你了int2
2、如果你在创建的时候选择了别的类型,创建之后想要修改成serial2就会报错,导致修改失败
3、自动增长的字段类型不能选择int2,虽然创建之后显示的是int2,但此int2非彼int2.
所以,pg中的int2有两种,一种是序列型的,可以自动增长;另一种是非序列型的,只能存整形数据,不能自动增长。
项目中的那些事---踩过的数据库坑
标签:
热心网友 时间:2022-04-09 13:25
理论上可行,但是不同的数据库有不同的方言。要想全部兼容,应该会遇到不少坑。而且想不出来这么做的原因,何苦难为自己呢?热心网友 时间:2022-04-09 14:43
当然不能