
正文
postgre修改字段类型,修改post参数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
postgresql 的一个表建好后int类型的主键忘记设为递增了,如何将它改成递增的?急求!!
把字段改成递增比较麻烦,如果你表中尚无数据,可以删除后重建。
如果不能删除后重建,
则,先建立一个序列
create sequence seqname start 100; --seqname随便取,和其他序列名不重复就行,100为你需要改变类型的那列的最大值加1,替换成实际值
alter table tablename alter columnname set default nextval('seqname');
就OK了,serial类型本质上就是int类型配合序列
相关问答
Q1: 在linux下的PostgreSQL中,如何修改字段的数据类型?(用命令修改)
8.0版以上的时候:
alter table 你的表名 alter column 列名 type 你的新类型
8.0版以下的时候:
把要修改的表dump下来,在dump文件中直接修改,再重新导入道数据库中。
这个有些危险,如果数据类型不合的话,会出问题。比如由字符类型转数字类型。
Q2: Postgre Sql中有没有把字符串转换成int数值类型的函数
在SQLSERVER2005中,将表中字符串转换为数字的函数共2个:1.convert(int,字段名)例如:selectconvert(int,'3')2.cast(字段名asint)例如:selectcast('3'asint)其实,一般情况下没有必要把字符串转换为数字类型假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQLSERVER会自动把字符串转换为数字再比较的!例如:selectda.TITLE_NAME,dsc.NAMEfromdbo.DV_DUTYddinnerjoinDV_SECOND_CLASSdscon(dsc.ID=dd.AREA)leftjoinDV_ASSETdaon(da.ID=dd.RECORD_IDanddd.TYPE='2')wheredd.AREAisnotnull这个SQl中,innerjoinDV_SECOND_CLASSdscon(dsc.ID=dd.AREA)中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。SQLSERVER2005中有判断字段是否为数字的函数:ISNUMERIC(字段名)-----假如字段是数字类型返回1,不是就返回0但是好像有的时候不好使,比如:selectisnumeric('3,34')就返回1说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!
Q3: postgresql哪个语句可以改变字段名的类型?alert table 表名 alter column 字段名 字段类型 这个是不行的
alter
table
表名
alter
column
字段名
varchar(50)
not
null;
或者
alter
table
表名
modify
column
字段名
varchar(50)
not
null;
字段类型自定义
,可以是varchar、int等类型,根据不同的数据库版本,修改指令可能是alter
column或modify
column
Q4: PGSQL如何修改某一字段的类型
是的她不能修改,但你可以用其他方法来达到目的!
新建一个表 再把资料导进去!把原来的表删掉,把新表更名,
也可新加一个字段,再把资料转过去!再把原来字段删掉
postgre修改字段类型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于修改post参数、postgre修改字段类型的信息别忘了在本站进行查找喔。








