Sequelize 中的复合主键

2023-12-29

有人可以建议如何在同一个表中的两列上设置主键。

var relation = {
        'user_id': {
            type: DataTypes.INTEGER
        },
        'organization_id':{
            type: DataTypes.INTEGER
        }
}

我想定义一个主键,例如 primary key (user_id, organization_id)

注意:使用PostgreSQL


您可以通过指定在 Sequelize 中创建复合主键primaryKey: true针对多个列。例如。

import { sequelize } from '../../db';
import { Model, DataTypes } from 'sequelize';

class Tbl extends Model {}
Tbl.init(
  {
    user_id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
    },
    organization_id: {
      type: DataTypes.INTEGER,
      primaryKey: true,
    },
  },
  { sequelize, modelName: 'tbls' },
);

(async function test() {
  try {
    await sequelize.sync({ force: true });
  } catch (error) {
    console.log(error);
  } finally {
    await sequelize.close();
  }
})();

执行结果及生成的SQL:

Executing (default): CREATE TABLE IF NOT EXISTS "tbls" ("user_id" INTEGER , "organization_id" INTEGER , PRIMARY KEY ("user_id","organization_id"))

检查表定义:

=# \d+ tbls;
                             Table "public.tbls"
     Column      |  Type   | Modifiers | Storage | Stats target | Description
-----------------+---------+-----------+---------+--------------+-------------
 user_id         | integer | not null  | plain   |              |
 organization_id | integer | not null  | plain   |              |
Indexes:
    "tbls_pkey" PRIMARY KEY, btree (user_id, organization_id)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sequelize 中的复合主键 的相关文章

随机推荐

  • 如何在 C# 中基于现有委托类型创建新的委托类型?

    有什么方法可以基于现有的委托类型创建新的委托类型吗 就我而言 我想创建一个委托MyMouseEventDelegate其功能与EventHandler
  • 如何隐藏 Mac/OSX 拖放 JTable 选择框

    在 JTable 上执行拖放操作时 拖动时会出现所选单元格 选择框 的轮廓 我怎样才能覆盖该行为并且除了特殊光标之外不显示任何内容 在 Windows 和 OSX 中运行以下代码显示了我想要覆盖的行为 import java awt Bor
  • ASP.NET 身份检查用户角色不起作用

    我有一个 ASP NET MVC 5 应用程序 我使用标准 ASP NET 身份提供程序进行用户和角色管理 重要的是我使用自己的存储库项目中的 IdentityUser 但这似乎没问题 我可以注册 登录 编辑用户并管理他们的角色 我使用以下
  • Azure Devops - 按代理池 ID 获取发布定义

    我试图使用 NET 客户端库查找配置为使用特定代理池的所有构建和版本 假设agentPoolId 我可以得到所有的构建定义 如下所示 connection is of type VssConnection using var buildCl
  • 配置 EMR 以使用 s3a 而不是 s3 进行 Spark.sql 调用

    我对 Spark sql 的所有调用都失败 并在堆栈跟踪中出现错误 1 below 更新 2我已经把注意力集中在这个问题上 它是 sts AssumeRule 的 AccessDenied 任何线索都值得赞赏 User arn aws st
  • 在 Spark 2.3.0 的结构化流中禁用 _spark_metadata

    我的结构化流应用程序正在写入镶木地板 我想摆脱它创建的 spark metadata 文件夹 我使用了下面的属性 看起来不错 conf spark hadoop parquet enable summary metadata false 当
  • 如何从 Java 中的套接字获取客户端名称?

    抱歉 简单的问题 但我无法使用谷歌或教科书在任何地方找到答案 我有一个简单的服务器 用户通过 java 中的套接字连接到该服务器 我想使用这个 Java 套接字来检索用户客户端名称 这可能吗 我知道我可以使用 getInetAddress
  • 数据绑定到以编程方式创建的数据表

    假设我有一个这样的数据表 DataTable dt new DataTable Woot dt Columns AddRange new DataColumn new DataColumn ID typeof System Guid new
  • 使用 JavaScript 对 DIV 进行动画处理会在 Chrome 上呈现工件

    作为一个实验 我尝试在 JavaScript 中复制 AS3 的 Sprite 功能 而不使用画布对象 我认为使用绝对定位的 div 并操作它们的 css 属性是理所当然的 但是在 Chrome 中 动画引入了奇怪的工件 似乎是因为重绘问题
  • 如何同时支持es模块和commonjs模块

    我们从 npm 安装的一些包同时支持 commonjs 和 es 模块 这些包可以按如下方式导入 import express from express or const express require express 我创建了一个包我已经
  • Delphi 是否提供用于表单创建通知的事件处理程序?

    Delphi 是否提供某种用于表单创建的事件或挂钩 或者更一般地说 表单生命周期事件 因此 如果在代码中的某处创建并显示表单 模态或非模态 动态或在通常的应用程序启动阶段 Delphi 会调用一个事件处理程序 该处理程序允许在显示之前记录
  • Bacon.js 超出最大调用堆栈

    我正在尝试生成类似的流Bacon fromPoll for requestAnimationFrame 为什么下面的代码会产生一个 超出最大调用堆栈 error function rafSequence var raf Bacon from
  • 如何以编程方式缓存/下载谷歌地图v2图块?

    如何以编程方式缓存 下载谷歌地图 v2 图块 可能吗 Bcos根据这个prntscr com 3cyiqf http prntscr com 3cyiqf这是不可能的 但正如我所看到的这个链接使用本地图块的 TileProvider htt
  • 删除名为 xfdf:field(带有命名空间)的 XML 标记

    我想从 XML 文件中删除 XML 元素 我要删除的标签名为 xfdf field 如何在 xslt 中指定这一点 我尝试了这个 但收到一条错误消息 org apache xpath domapi XPathStylesheetDOM3Ex
  • 如何签署 Firefox 扩展

    我想签署 Firefox 扩展 我在互联网上搜索了有关签署扩展程序的信息并找到了 URLhttps developer mozilla org en docs Signing a XPI https developer mozilla or
  • Webpack:让它忽略找不到的源文件?

    我正在使用 snabbdom js 和 webpack 构建 JS 前端应用程序 我有一个非常简单的 snabbdom 视图和将其捆绑在一起的 webpack 配置 当我在 chrome 中加载捆绑包时 我会在控制台中看到所有这些内容 我可
  • 从 3D 平面上的 3D 点检索 2D 坐标

    我有一个点 x y z 位于由 ax by cz d 0 定义的平面上 我试图找出 x y 相对于平面的关系 它的起点为 x0 y0 z0 x 轴由 1 0 和y 轴由 0 1 定义 我的主要目标是让鼠标单击表面 并了解特定表面上的 2D
  • Servlet.init() 和 Filter.init() 调用顺序

    java web 应用程序中 Servlet init 和 Filter init 方法按什么顺序调用 首先调用哪个 是否所有 Servlet init 方法都先于任何 Filter doFilter 方法调用 过滤器总是在 webapp
  • 每次操作后关闭访问数据库还是保持打开状态以供以后操作更好

    我正在开发一个 VB NET 项目 该项目从 Access DB 文件中获取数据 我遇到的所有代码片段都会打开数据库 执行操作并为每个操作关闭它 目前 我在应用程序运行的整个过程中都打开数据库 并且仅在应用程序退出时才将其关闭 我的问题是
  • Sequelize 中的复合主键

    有人可以建议如何在同一个表中的两列上设置主键 var relation user id type DataTypes INTEGER organization id type DataTypes INTEGER 我想定义一个主键 例如 pr