下面是架构:
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;
Run Code Online (Sandbox Code Playgroud)
以下是使用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));
}
Run Code Online (Sandbox Code Playgroud)
UNIQUE约束似乎不适用于电子邮件列.我可以在电子邮件列中添加重复值.约束仅适用于电话号码.
我使用EDB Postgres安装程序为Windows 10安装了数据库.我使用PGADMIN 4和PSQL Shell进行数据操作.
小智 6
UNIQUE (phone_number, email)
Run Code Online (Sandbox Code Playgroud)
告诉我,一对<phone_number,email>应该是唯一的,而不是每个列分别.
尝试为单独的列设置唯一约束.
查看约束条件
| 归档时间: |
|
| 查看次数: |
783 次 |
| 最近记录: |