Amazon RDS PostgreSQL 15.2执行ALTER TABLE IF EXISTS报错问题咨询
AWS RDS PostgreSQL 15.2中
ALTER TABLE IF EXISTS行为异常的原因 - 核心原因:这是AWS RDS PostgreSQL 15.2版本的专属bug,并非默认参数配置导致。AWS在该版本的定制补丁中引入了逻辑错误,破坏了
IF EXISTS子句的标准行为。 - 社区版对比:PostgreSQL社区版(含15.2)中,执行
alter table if exists public.my_table add column foo boolean;时,若表不存在仅会输出NOTICE: relation "my_table" does not exist, skipping并跳过操作,不会抛出ERROR。 - 修复情况:该异常仅存在于AWS RDS PostgreSQL 15.2版本,后续发布的15.x小版本(如15.3及以上)已修复此问题。
- 临时解决方案:若暂时无法升级,可先执行
SELECT 1 FROM pg_tables WHERE schemaname='public' AND tablename='my_table';判断表是否存在,再决定是否执行ALTER语句。
内容的提问来源于stack exchange,提问作者acco
相关产品推荐
相关产品推荐

