使用sqlmodel实现唯一性校验

ops/2024/10/18 7:57:36/

代码:

python">from sqlmodel import Field, Session, SQLModel, create_engine# 声明模型
class User(SQLModel, table=True):id: int | None = Field(default=None, primary_key=True)# 不能为空,必须唯一name: str = Field(nullable=False, unique=True)age: int | None = None# 创建引擎
engine = create_engine("sqlite:///database.db", echo=True)# 创建表
SQLModel.metadata.create_all(engine)# 创建两个名字重复的用户
zs_1 = User(name="张三", age=22)
zs_2 = User(name="张三", age=23)with Session(engine) as session:session.add(zs_1)session.add(zs_2)session.commit()

这段代码执行,会触发唯一性校验异常:
在这里插入图片描述

如果注释掉其中一个,则正常执行:

python">from sqlmodel import Field, Session, SQLModel, create_engine# 声明模型
class User(SQLModel, table=True):id: int | None = Field(default=None, primary_key=True)# 不能为空,必须唯一name: str = Field(nullable=False, unique=True)age: int | None = None# 创建引擎
engine = create_engine("sqlite:///database.db", echo=True)# 创建表
SQLModel.metadata.create_all(engine)# 创建两个名字重复的用户
zs_1 = User(name="张三", age=22)
# zs_2 = User(name="张三", age=23)with Session(engine) as session:session.add(zs_1)# session.add(zs_2)session.commit()

在这里插入图片描述


http://www.ppmy.cn/ops/39225.html

相关文章

python中的数据可视化:二维直方图 hist2d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python中的数据可视化: 二维直方图 hist2d() 选择题 关于以下代码输出结果的说法中正确的是? import matplotlib.pyplot as plt import numpy as np x np.random.normal(0, 1, …

spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别

目录 前言说明举例 前言 使用spring boot参数验证是常常会使用NotNull、NotBlank和NotEmpty三个判断是否不为空的注解,中文都有不能为空的意思,大部分使用者都傻傻分清它们之间到底有什么区别。今天就让咱们来一起探索它们之间的不同吧。 说明 注解名…

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大…

axios配置 responseType: “blob“

在使用 Axios 进行网络请求时,配置 responseType: "blob" 是用来指示 Axios 将响应体作为 Blob 对象处理。这在文件下载功能中特别有用,因为 Blob 对象可以被用来创建一个指向该文件内容的 URL,进而触发浏览器的下载行为或者在页面…

【Excel VBA】深入探索VBScript中的Choose函数

深入探索VBScript中的Choose函数 在编程实践中,我们会遇到大量的If……ElseIf……搞得代码异常的庞大。 今天有个VBA的学生,突然问田辛老师有没有好的办法。 于是, 田辛老师发现还真有办法。 也就是Choose函数。Choose函数可以来优化代码逻辑…

第 8 章 机器人底盘Arduino端入口(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.4.2 底盘实现_01Arduino端入口 ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge…

Spring AOP浅谈

什么是AOP? AOP是Aspect-Oriented Programming的缩写,是一种面向切面的编程方法。 在AOP中,一个切面是一组可以独立于其他代码执行的功能,如日志记录、安全性检查、事务处理等。这些功能通常被称为"通知",并…

学习java第六十六天

Spring 中的 bean 的作用域有哪些? singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。 prototype : 每次请求都会创建一个新的 bean 实例。 request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。 sessio…