在使用 Sequelize 对 Postgresql 进行开发时,经常需要设置默认值,以便在创建记录时自动填充某些字段。本文将介绍如何使用 Sequelize 在 Postgresql 中设置默认值。
什么是 Sequelize?
Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)库,支持多种数据库,包括 MySQL、Postgresql、SQLite 和 MSSQL 等。Sequelize 提供了一种将数据库表映射到 JavaScript 对象的方式,使得在 Node.js 应用程序中直接操作数据库变得更加简单和方便。
如何在 Sequelize 中设置默认值?
在 Sequelize 中,可以使用 defaultValue
属性来设置默认值。这个属性可以设置为一个常量值、一个函数或一个 Sequelize 数据类型的实例。下面是一个示例:
const User = sequelize.define('user', { name: { type: DataTypes.STRING, defaultValue: 'John Doe' }, email: { type: DataTypes.STRING, defaultValue: function() { return 'user' + Math.random() + '@example.com'; } }, age: { type: DataTypes.INTEGER, defaultValue: sequelize.literal('CURRENT_DATE - "birthdate"') } });
在这个示例中,我们定义了一个名为 User
的模型,其中包含三个字段:name
、email
和 age
。name
和 email
字段的默认值分别为一个常量字符串和一个函数,而 age
字段的默认值是一个 Sequelize 数据类型的实例,它使用 Postgresql 的 CURRENT_DATE
函数来计算用户的年龄。
如何在 Postgresql 中设置默认值?
在 Postgresql 中,可以使用 DEFAULT
关键字来设置默认值。下面是一个示例:
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL DEFAULT 'John Doe', email VARCHAR(255) NOT NULL DEFAULT 'user@example.com', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );
在这个示例中,我们创建了一个名为 users
的表,其中包含三个字段:name
、email
和 created_at
。name
和 email
字段的默认值分别为一个常量字符串,而 created_at
字段的默认值是 Postgresql 的 CURRENT_TIMESTAMP
函数,它用于记录用户的创建时间。
如何在 Sequelize 和 Postgresql 中使用默认值?
在 Sequelize 和 Postgresql 中,可以同时使用 defaultValue
和 DEFAULT
来设置默认值。下面是一个示例:
const User = sequelize.define('user', { name: { type: DataTypes.STRING, defaultValue: 'John Doe', allowNull: false }, email: { type: DataTypes.STRING, defaultValue: 'user@example.com', allowNull: false }, created_at: { type: DataTypes.DATE, defaultValue: sequelize.literal('CURRENT_TIMESTAMP'), allowNull: false } }, { timestamps: false });
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL DEFAULT 'John Doe', email VARCHAR(255) NOT NULL DEFAULT 'user@example.com', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );
在这个示例中,我们定义了一个名为 User
的模型和一个名为 users
的表,它们都包含三个字段:name
、email
和 created_at
。name
和 email
字段的默认值分别为一个常量字符串,而 created_at
字段的默认值是 Postgresql 的 CURRENT_TIMESTAMP
函数,它用于记录用户的创建时间。同时,我们还设置了 allowNull: false
来确保这些字段不为空。
总结
在本文中,我们介绍了如何在 Sequelize 和 Postgresql 中设置默认值。通过使用 defaultValue
和 DEFAULT
,我们可以轻松地为数据库表中的字段设置默认值,从而提高开发效率和数据的准确性。希望本文对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65c49ee4add4f0e0fff2c9bc