我对PostgreSQL还是个初学者,我遇到了这个问题,我不知道如何解决它. 以下是重现问题的方法: 我有一个包含(USER_ID BIGSERIAL,EMAIL VARCHAR(255)UNIQUE)列的表.我插入(使用INSERT INTO TABLE)一行邮箱,获得user_id 1,然后插入另一列具有相同邮箱的列,它给出一个错误,我再次try 插入一行,但这一次使用不同的邮箱,它被创建,但user_id是3.我预期它是2.
以下是可以重现该问题的PostgreSQL命令:
CREATE TABLE users(user_id BIGSERIAL, email VARCHAR(255) UNIQUE);
INSERT INTO users(email) VALUES ('myemail@email.com');
INSERT INTO users(email) VALUES ('myemail@email.com');
INSERT INTO users(email) VALUES ('mynewemail@email.com');
现在,如果我再次插入相同的邮箱,我将得到一个重复错误,如果我在那之后插入一个新的邮箱,我将得到一个值为3的user_id,而只有两行.
我在NodeJS中使用PG包.我正在try 使用Pern堆栈创建一个应用程序.我以为我不会依赖于PostgreSQL的唯一约束,而是取而代之的是获取数据以查看邮箱是否已经存在,但在我看来这不是理想的解决方案.