SQLAlchemy的类型定义语法

表名配置(核心魔法属性)

复制代码
__tablename__ = "favorite"
  • 双下划线开头 + 结尾:SQLAlchemy 固定魔法属性
  • 作用:指定数据库里的表名

表级配置(约束、索引)

复制代码
__table_args__ = ( ... )
  • 同样是双下划线
  • 用于给表添加:
    • 唯一约束
    • 索引
    • 存储引擎
    • 字符集
  • 必须是元组格式 ( , )

字段定义语法(最核心)

复制代码
字段名: Mapped[类型] = mapped_column(参数...)

Mapped[类型]:Python 类型注解
mapped_column(参数):对该字段的属性设置

mapped_column () 通用常用属性
复制代码
mapped_column(
    # 1. 数据库字段类型
    Integer, String(32), Text, DateTime, Boolean, Float, Decimal

    # 2. 主键
    primary_key=True,  # 设为主键
    autoincrement=True,  # 自增(整数主键常用)

    # 3. 非空 / 允许为空
    nullable=True,  # 不允许为空(默认 True)

    # 4. 唯一
    unique=True,  # 字段值唯一(如手机号、用户名)

    # 5. 默认值
    default=datetime.utcnow,  # Python 层默认值
    server_default="CURRENT_TIMESTAMP",  # 数据库层默认

    # 6. 注释
    comment="字段说明",

    # 7. 索引
    index=True,  # 快速创建普通索引

    # 8. 只读 / 不更新
    insert_only=True,  # 只插入,不允许更新

    # 9. 隐藏字段(ORM 可用,查询默认不显示)
    deferred=True,
)
相关推荐
牧瀬クリスだ14 分钟前
Redis Hash实战:高效存储对象与购物车
java·数据库·redis·算法·哈希算法
A小码哥18 分钟前
【外】水星3号实测 1068 token 每秒靠谱吗
数据库
qq_4523962336 分钟前
第六篇:《SQL 优化的艺术:从慢查询到毫秒级响应》
数据库·sql
ShineWinsu1 小时前
对于Qt:QWidget通用属性的解析—上
数据库·qt·microsoft·面试·gui·属性·qwidget
程序员塔塔喵1 小时前
【MySQL篇|第十篇】深分页问题
数据库·oracle·深分页问题
ClouGence2 小时前
SQL 效率天花板!开源 CloudDM,自带一站式 AI SQL 助手
数据库·sql·开源
Decay__2 小时前
附-01 · MySQL 压测与容量规划 —— sysbench 基准测试、容量评估与参数基线
运维·数据库·sql·mysql·架构
这个DBA有点耶2 小时前
主从切换报成功,业务却写不进去——数据层脑裂与应用层连接残留的两类假成功
数据库·架构·dba
qq_452396232 小时前
第八篇:《VACUUM、自动清理与膨胀治理》
jvm·数据库·oracle
SelectDB技术团队2 小时前
ClickHouse 支持存算分离吗?Doris 社区版原生存算分离怎么落地
数据库·clickhouse·云原生·开源·apache doris·技术选型·存算分层