首页 > 其他分享 >跨版本迁移数据报错tables declared WITH OIDS are not supported

跨版本迁移数据报错tables declared WITH OIDS are not supported

时间:2023-08-21 17:00:41浏览次数:30  
标签:tables declared 指定 OID 存储 OIDS 报错 新表 TRUE

瀚高数据库

目录

环境

症状

问题原因

解决方案


环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 7

版本:6.0


症状

迁移数据还原数据库时报错

ERROR:  tables declared WITH OIDS are not supported

问题原因

Postgresql12后取消了OIDS=TRUE的用法。


解决方案

修改脚本中的语句

脚本中出现OIDS=TRUE的情况有两种,一种是

set default_with_oids= true;

这种情况下删除这这行语句即可,也可以无视,新版本默认default_with_oids= true,报错后不会影响数据。

另一种是

create table test(id int,name varchar(100)) with(OIDS=true);


这种sql语句需要将“with(OIDS=true)”从语句中删除。否则的话创建报的操作将失效。


参考资料:

postgresql11的描述:

WITH ( storage_parameter [= value] [, ... ] )

这个子句为一个表或索引指定可选的存储参数,详见存储参数。一个表的WITH子句还可以包括OIDS=TRUE(或者只包括OIDS)来指定新表的行应该具有被分配的 OID(对象标识符),或者包括OIDS=FALSE来指定新表的行不具有 OID。如果没有指定OIDS,默认设置取决于default_with_oids配置参数(如果新表是从任何具有 OID 的表继承而来,那么即使该命令要求OIDS=FALSE也会强制使用OIDS=TRUE)。


如果指定或者蕴含了OIDS=FALSE,新表就不会存储 OID 并且对插入其中的一个新行不会分配 OID。这通常值得考虑,因为它将减少 OID 消耗并且因而推迟 32 为 OID 计数器的回卷。一旦计数器回卷,OID 就不再能被假定为唯一,这就使它们不那么有用了。另外,从一个表中排除 OID 可以减少存储该表所需的磁盘空间,减少的量是每行减少 4 字节(在大部分机器上),这也略微提高了性能。


要在表被创建后从中移除 OID,使用ALTER TABLE.


postgresql12的描述:

WITH ( storage_parameter [= value] [, ... ] )

这个子句为一个表或索引指定可选的存储参数,详见存储参数 。 为了向后兼容性,表的WITH子句还可以包括OIDS=FALSE以便指定新表的行不应包含 OIDs (对象标识符),OIDS=TRUE不再受支持。


标签:tables,declared,指定,OID,存储,OIDS,报错,新表,TRUE
From: https://blog.51cto.com/u_13646489/7177337

相关文章

  • 报错注入
    什么是报错注入?报错注入是一种页面响应形式。响应过程如下:用户在前台页面输入检索内容 ↓后台将前台页面上输入的检索内容无加区别的拼接成sql语句,送给数据库执行↓数据库将执行的结果返回给后台,后台将数据库执行的结果无加区别的显示到前......
  • mysql登陆数据库报错Segmentation fault (核心已转储)的解决办法
     转自:https://bbs.cnbugs.com/read-43-1.html今天在登陆新安装好的数据库报如下错误: [root@lnmp~]#mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis13Serverversion:8.0.21 Copyright(c......
  • Asp.net Core Web API 启动时出现报错Failed to load API definition
    1、新建的Asp.netCoreWebAPI项目启动时一般是没有问题的,如果在controller下增加多个操作后再启动会出现swagger的报错-FailedtoloadAPIdefinition,基本是由于以下两种原因,分别排查即可: (1)如上图1位置:默认webapi模板创建时只有一个方法所以没有[action] 当我们增加多个......
  • 运行Jar包出现:xxx中没有主清单属性报错
    1、项目打好jar包时,使用命令运行jar包:java-jarxxx.jar出现报错:xxx中没有主清单属性 解决办法:亲测有用在pom.xml配置中,加上以下配置:<build><!--打包成jar包时的名字--><finalName>xxxTest</finalName><plugins><plugin>......
  • tablestore依赖问题解决
    依赖引入最新版本<dependency><groupId>com.aliyun.openservices</groupId><artifactId>tablestore</artifactId><version>5.16.0</version></dependency>执行如下方法,报错下面2个错误信息,如下图:错误一:错误二:错误原因:JavaSDK依赖2......
  • ffpyplayer源码编译报错:ffpyplayer/tools.pyx:182:28: Cannot assign type 'void (*)(
    编译ffpyplayer报错,具体错误如标题。  报错信息:ffpyplayer/tools.pyx:182:28:Cannotassigntype'void(*)(void*,int,constchar*,va_list)except*nogil'to'void(*)(void*,int,constchar*,va_list)noexceptnogil'  解决方法:pipinstallblos......
  • mysql 8 - linux 安装后 java 调用报错 SQLException: Temporary file write failure
    完整报错Cause:java.sql.SQLException:Temporaryfilewritefailure.;uncategorizedSQLException;SQLstate[HY000];errorcode[1878];Temporaryfilewritefailure.;nestedexceptionisjava.sql.SQLException:Temporaryfilewritefailure.解决不要作用在......
  • mysql在启动时报错"Failed to open log xxxxxx/mysql-bin.000003 not found,errno 2"
    问题描述:mysql在启动时报错"Failedtoopenlogxxxxxx/mysql-bin.000003notfound,errno2",如下所示:数据库:mysql5.5.18系统:rhel6.564位架构:一主一从场景描述:主库最新binlog文件被手动删除后,重启数据库报错.1、异常重现23082014:52:19InnoDB:1.1.8started;logseque......
  • vuepress 安装报错问题
    关于vuepress部署出现样式的问题及解决6月前作者:我yi癫狂分类: 博客文章阅读(35)原文违法举报 目录vuepress部署出现样式问题vuepress个人博客部署遇到的一些问题1、js和css出现404问题2、每次都要重复操作打包、运行、上传github很麻烦怎么办?3、github.io无法打开怎......
  • Django 登录页面优化的报错总结
    Django登录页面优化的报错总结在登录页面进行优化过程中,遇到的一些报错这边总结了一些希望会对读者有所帮助。调用new_key=CaptchaStore.generate_key()报错在调用CaptchaStore.generate_key()时出现错误,请确保您已正确设置了django-simple-captcha库。请按照以下步骤检查......