python type_error ai_generated true

外键 'orders.user_id' 列类型 'VARCHAR' 与引用列 'users.id' 类型 'INTEGER' 不匹配

sqlalchemy.exc.ArgumentError: Foreign key 'orders.user_id' column type 'VARCHAR' does not match referenced column 'users.id' type 'INTEGER'

ID: python/sqlalchemy-invalid-foreign-key-column-type

其他格式: JSON · Markdown 中文 · English
80%修复率
89%置信度
0证据数
2025-02-20首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

外键列的数据类型与引用的主键类型不同,导致数据库级类型不匹配。

English

The foreign key column has a different data type than the primary key it references, causing database-level type mismatch.

generic

解决方案

  1. 100% 成功率
    class User(Base):
        id = Column(Integer, primary_key=True)
    class Order(Base):
        user_id = Column(Integer, ForeignKey('users.id'))  # not String

无效尝试

常见但无效的做法:

  1. 50% 失败

    May break other relationships or data integrity.

  2. 70% 失败

    Database may reject inserts or cause performance issues.