刚接触 postgresql。这可能很简单;但我不明白。
我在 mysql 中有这个:
insert into APP_USERS VALUES
(1, 'admin', 'adminemailid','', 'System', 'Administrator', 'SysAdmin', 'CompanyName',
sha('password123'), 'ADMIN', 2,'SCREEN',0);
在参考了有关密码加密/散列的 postgresql 文档以及 Stackoverflow 上的各种类似问题之后;
我尝试过在 postgresql 中相当于:
insert into APP_USERS VALUES
(1, 'admin', 'adminemailid','', 'System', 'Administrator', 'SysAdmin', 'CompanyName',
crypt('password123',gen_salt('sha1')), 'ADMIN', 2,'SCREEN',0)
但;它在函数中向我抛出一个错误gen_salt()
:
没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。
(列(字段)密码的数据类型为性格各异.)
我阅读了有关 postgresql 中类型转换的各种手册,并尝试转换该函数。
但;没有用。我遇到过各种类似的错误。
我能知道到底缺少什么吗?或者类型转换的确切方法是什么?
或者我是否需要为此添加 chkpass 模块(扩展)?
我已经有了 pgcrypto 扩展并且正在使用 postgresql 9.6。