使用PostgreSQL的时候,用户名尽量不要使用大写字母,在命令行下默认会给你转换成小写
postgres=# ALTER user Drupal WITH PASSWORD 'password123456';
ERROR: role "drupal" does not exist
postgres=# ALTER user "Drupal" WITH PASSWORD 'password123456';
ALTER ROLE
如上,你创建的用户名是Drupal, 首字母大写,但是不加处理的话,被转换成小写的drupal, PostgreSQL会找不到用户。
解决方法,一是使用引号把用户名包裹起来,但是这个问题经常会被忽视,浪费时间精力。另外一种一劳永逸的办法,就是把用户名直接改成小写的:
postgres=# alter role "Drupal" rename to drupal;
ALTER ROLE
标准的SQL是不区分大小写的,但是PostgreSQL对于数据库中对象的名字允许使用支持大小写区分的定义和引用方法。然而为了方便,还是全部使用小写为好。
添加新评论