GBase8s创建主键失败:[42000][-201] 发生语法错误 [00000]

GBase8s创建主键失败:[42000][-201] 发生语法错误 [00000]

  • 问题描述
  • 原因分析
  • 解决方案
  • 其他
  • 参考链接

问题描述

  • 场景描述

    修改已存在表,添加主键失败

  • 执行SQL

    
        ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);
    
    
  • 报错信息

    
        [42000][-201] 发生语法错误。 [00000] java.sql.SQLException
    
    
    

原因分析

  • GBase8s不支持上述语法

    GBase8s跟informix类似,相关语法可以参照informix数据库

解决方案

  • SQL样例

    
       ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY (字段名) [CONSTRAINT 主键名];
    
    

其他

  • 主键名称规范

    GBase8s创建主键会默认起主键名称,从系统表中查询出来的主键名称很可能为纯数字,基于拼接的SQL无法添加纯数字的主键

参考链接

  • Informix创建/修改主键

  • alter table add constraint foreign key informix

你可能感兴趣的:(Relational,Database,Bug,Summary,数据库,java,sql)