Sequelize 错误:Unknown column 'createdAt' 的解决方式

阅读时长 5 分钟读完

前言

在使用 Sequelize 进行数据库操作的过程中,有时会遇到 Unknown column 'createdAt' 的错误提示,这是因为 Sequelize 默认会在表中添加 createdAt 和 updatedAt 字段,用于记录数据的创建和更新时间。但是如果在使用 Sequelize 创建表时没有手动添加这两个字段,就会出现这个错误。

本文将介绍这个错误的解决方式,并提供示例代码,帮助读者更好地理解和应用 Sequelize。

错误示例

假设我们有一个 users 表,其中包含 id 和 name 两个字段,我们使用 Sequelize 进行查询操作时,会出现以下错误提示:

这个错误提示告诉我们,在查询 users 表时,Sequelize 会默认查询 createdAt 和 updatedAt 字段,但是在表中找不到这两个字段,因此会出现 Unknown column 'createdAt' 的错误。

解决方式

要解决这个错误,我们需要手动添加 createdAt 和 updatedAt 字段到表中。在 Sequelize 中,可以通过定义 Model 的方式来创建表,如下所示:

-- -------------------- ---- -------
----- - ---------- ------ --------- - - ---------------------

----- --------- - --- -----------------------------------------------------------

----- ---- ------- ----- --
-----------
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -----------------
  ---------- ---------------
  ---------- --------------
-- -
  ----------
  ---------- ------
---

------ -- -- -
  ----- ---------------- ------ ---- ---
-----

在上面的代码中,我们手动在 User Model 中添加了 createdAt 和 updatedAt 字段,并设置了它们的数据类型为 DATE。在调用 sync 方法时,Sequelize 会根据 Model 的定义自动创建 users 表,并添加 createdAt 和 updatedAt 字段。

示例代码

下面是一个完整的示例代码,演示了如何使用 Sequelize 进行 CRUD 操作,并手动添加 createdAt 和 updatedAt 字段:

-- -------------------- ---- -------
----- - ---------- ------ --------- - - ---------------------

----- --------- - --- -----------------------------------------------------------

----- ---- ------- ----- --
-----------
  --- -
    ----- ------------------
    ----------- -----
    -------------- ----
  --
  ----- -----------------
  ---------- ---------------
  ---------- --------------
-- -
  ----------
  ---------- ------
---

------ -- -- -
  ----- ---------------- ------ ---- ---

  -- ------
  ----- ---- - ----- ------------- ----- ------- ---
  ---------------------------

  -- ----
  ----- ----- - ----- ---------------
  ----------------------- -- -------------

  -- ------
  --------- - ------
  ----- ------------
  ---------------------------

  -- ------
  ----- ---------------
-----

在上面的示例代码中,我们首先创建了一个 User Model,并手动添加了 createdAt 和 updatedAt 字段。然后调用 sync 方法创建 users 表,并使用 create 方法添加一条数据,使用 findAll 方法查询所有数据,使用 save 方法更新数据,使用 destroy 方法删除数据。

总结

本文介绍了 Sequelize 错误:Unknown column 'createdAt' 的解决方式,并提供了示例代码。在使用 Sequelize 进行数据库操作时,一定要注意手动添加 createdAt 和 updatedAt 字段,以免出现这个错误。同时,本文还介绍了 Sequelize 的基本 CRUD 操作,希望能够帮助读者更好地理解和应用 Sequelize。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f3e5a02b3ccec22fc51dde

纠错
反馈