DBAtlas · 数据库运维图谱

42P16: invalid_table_definition

PostgreSQL

含义

由于表定义无效,DDL 命令被拒绝。所请求的表/列结构违反了 PostgreSQL 的规则。

原因

例如定义了多个主键('multiple primary keys for table are not allowed')、与继承冲突的定义、生成列/标识列的限制,或要求 ALTER TABLE 生成其无法产生的结构。在自动生成的迁移脚本中很常见。

解决方法

阅读错误消息中的具体原因。只定义一个 PRIMARY KEY;如需多列键,使用 PRIMARY KEY (a, b) 形式的复合键。检查标识列/生成列的规则。用 \d my_table 检查当前表定义并修正迁移脚本。

在 DBAtlas 中打开 →

同一数据库的其他条目