42P16: invalid_table_definition
PostgreSQLNe demek?
Bir tablo tanımı geçersiz olduğu için DDL komutu reddedildi. İstenen tablo/sütun yapısı PostgreSQL kurallarına aykırıdır.
Neden olur?
Birden fazla primary key tanımlamak ('multiple primary keys for table are not allowed'), miras (inheritance) ile çelişen tanımlar, generated/identity sütun constraint'leri, ya da ALTER TABLE ile oluşturulamayacak bir yapıya geçiş gibi durumlar. Otomatik üretilen migration betiklerinde sık görülür.
Nasıl çözülür?
Hata mesajındaki spesifik nedeni okuyun. Yalnızca tek bir PRIMARY KEY tanımlayın; çoklu sütunlu anahtar gerekiyorsa PRIMARY KEY (a, b) biçiminde birleşik anahtar kullanın. Identity/generated sütun kurallarını gözden geçirin. Mevcut tablo tanımını \d tablo ile kontrol edip migration betiğini düzeltin.