gpt4 book ai didi

postgresql - UNIQUE 约束不适用于 postgresql 中的列

转载 作者:行者123 更新时间:2023-11-29 12:29:14 25 4
gpt4 key购买 nike

架构如下:

BEGIN;

DROP TABLE IF EXISTS contacts;

CREATE TABLE contacts (
user_id SERIAL,
first_name VARCHAR NOT NULL,
last_name VARCHAR NOT NULL,
email VARCHAR NOT NULL,
phone_number VARCHAR NOT NULL,
status VARCHAR NOT NULL,
created_at TIMESTAMP DEFAULT current_timestamp,
UNIQUE (phone_number, email)
);

COMMIT;

下面是使用 express 和 pg-promise 将数据插入数据库的代码:

function createContact(req, res, next) {
db.none('insert into contacts(first_name, last_name, email, phone_number, status)' +
'values(${first_name}, ${last_name}, ${email}, ${phone_number}, ${status})',
req.body)
.then(() => {
res.status(200)
.json({
status: 'success',
message: 'Inserted one contact',
});
})
.catch(err => next(err));
}

UNIQUE 约束似乎不适用于 email 列。我可以在电子邮件列中添加重复值。该约束仅适用于电话号码。

我已经使用适用于 Windows 10 的 EDB Postgres 安装程序安装了数据库。我正在使用 PGADMIN 4 和 PSQL Shell 进行数据操作。

最佳答案

UNIQUE (phone_number, email)

说明一对 应该是唯一的,而不是每一列分开。

尝试为单独的列设置唯一约束。

查看 Constraints

关于postgresql - UNIQUE 约束不适用于 postgresql 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43295548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com