在 postgres 中插入编码密码时出错

Error at insert encode password in postgres

我已经创建了这个 psql table 代码:

CREATE TABLE admin (id INT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL, password VARCHAR(255) NOT NULL, PRIMARY KEY(id))');

然后

INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx’);

我在终端端没有一个错误,但在 table 上有 0 行,我错过了什么代码吗?

如果您仔细查看您的值(在下方被截断!),您会发现最后一个单引号实际上是“右单引号”(U+2019) 而不是“单引号”/ “撇号”(U+0027),而所有其他引号都应该是撇号。

 (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$...’)
                                                                         ^-- this one

如果你仔细观察,你会发现它甚至看起来都不一样。您可以放大以更轻松地查看差异。

解决方法是将最后一个替换为撇号/单引号(U+0027):

INSERT INTO admin (id, username, roles, password) VALUES (nextval('admin_id_seq'), 'admin', '["ROLE_ADMIN"]', '$argon2id$v=19$m=65536,t=4,p=1$Kcm6sv104bqBtb+FEh+dDQ$caej4aGFAYMvBqKNHgFAGw6+1rua1Iwk/g09mYbOCLMx');