Questions tagged «postgresql-9.5»

15
PostgreSQL-由于与数据库的某些自动连接而无法删除数据库
每当我尝试删除数据库时,我都会得到: ERROR: database "pilot" is being accessed by other users DETAIL: There is 1 other session using the database. 当我使用时: SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'TARGET_DB'; 我终止了与该数据库的连接,但是如果在此之后尝试删除数据库,则有人会自动连接到该数据库并给出此错误。该怎么办?除了我之外,没有人使用这个数据库。

1
PostgreSQL在冲突更新中插入(向上更新)使用所有排除的值
当您升级一行(PostgreSQL> = 9.5),并且希望可能的INSERT与可能的UPDATE完全相同时,可以这样编写: INSERT INTO tablename (id, username, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com') ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, username=EXCLUDED.username, password=EXCLUDED.password, level=EXCLUDED.level,email=EXCLUDED.email 有没有更短的方法?只能说:使用所有EXCLUDE值。 在SQLite中,我曾经做过: INSERT OR REPLACE INTO tablename (id, user, password, level, email) VALUES (1, 'John', 'qwerty', 5, 'john@mail.com')

9
在ON CONFLICT子句中使用多个flict_target
我在表中两列col1,col2他们都是独一无二的索引(COL1是唯一的,因此是COL2)。 我需要在此表中插入,使用ON CONFLICT语法并更新其他列,但不能在inconflict_target子句中同时使用这两列。 有用: INSERT INTO table ... ON CONFLICT ( col1 ) DO UPDATE SET -- update needed columns here 但是如何对几个列执行此操作,如下所示: ... ON CONFLICT ( col1, col2 ) DO UPDATE SET ....
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.