You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Diesel schema中定义唯一约束,使username字段在表创建时生效?

给Diesel Schema的username字段添加唯一约束

当然可以实现,有两种常用方式:

1. 在Schema定义中直接添加约束属性

在username字段上添加#[unique]注解,Diesel会在生成迁移文件时自动为该字段添加唯一约束。修改后的Schema代码如下:

diesel::table! {
    account (organization_id) {
        
        #[max_length = 255]
        organization_id -> Varchar,
        
        #[max_length = 255]
        name -> Varchar,
        
        #[max_length = 255]
        description -> Varchar,
        
        account_was_verified -> Bool,
        
        #[max_length = 255]
        #[unique]
        username -> Varchar,

        #[max_length = 255]
        password_hash -> Varchar,

    }
}

之后执行diesel migration generate create_account生成迁移文件时,对应的SQL语句会自动包含username字段的唯一约束。

2. 手动修改迁移文件

如果已经生成了迁移文件,或者更偏好手动控制约束逻辑,可以直接编辑迁移的SQL文件:

  • 创建表时直接添加约束:
CREATE TABLE account (
    organization_id VARCHAR(255) PRIMARY KEY,
    name VARCHAR(255),
    description VARCHAR(255),
    account_was_verified BOOLEAN,
    username VARCHAR(255) UNIQUE,
    password_hash VARCHAR(255)
);
  • 若后续需要添加约束,可使用ALTER语句:
ALTER TABLE account ADD CONSTRAINT unique_username UNIQUE (username);

内容的提问来源于stack exchange,提问作者Drasungor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:42:35