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,
)
相关推荐
wangbing11259 小时前
SQL Server2008 R2版自动备份问题
数据库
Trouvaille ~9 小时前
【Redis篇】Redis 渐进式遍历与数据库管理
数据库·redis·缓存·中间件·数据库管理·后端开发·scan
xcLeigh9 小时前
KES数据库运维监控与故障排查实战
运维·数据库·sql·故障排查·运维监控·kes
GlobalSign数字证书9 小时前
中小企业的 SSL/TLS 证书管理,有更轻量的方案
数据库·网络协议·ssl
梓䈑9 小时前
【MySQL】库的操作(数据库的创建、查看、修改 和 备份)
数据库·mysql
yuzhiboyouye9 小时前
原生 SQL 常用核心语句基础语法
数据库·sql·oracle
我是一颗柠檬9 小时前
【Redis】事务与Lua脚本Day7(2026年)
数据库·redis·后端·lua·database
流星白龙9 小时前
【MySQL高阶】14.MySQL存储结构
android·数据库·mysql
一只fish9 小时前
Oracle官方文档翻译《Database Concepts 26ai》第18章-进程架构
数据库·oracle
流星白龙10 小时前
【MySQL高阶】17.InnoDB 内存结构
数据库·mysql·adb