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 检查当前表定义并修正迁移脚本。