小编dez*_*zso的帖子

如何在 PostgreSQL 中从本地文件复制到远程数据库?

我是 psql 的新手,需要一些帮助。如何将本地 CSV 加载到远程数据库?

我正在使用以下命令

\COPY test(user_id, product_id, value) 
      FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;
Run Code Online (Sandbox Code Playgroud)

但这会在远程数据库上搜索文件,而我需要在本地 PC 上执行此操作。

postgresql postgresql-9.1

9
推荐指数
1
解决办法
2万
查看次数

如何在 pgsql 9.1 中执行返回空值的过程?

如果我使用 pgsql 命令在文件中执行以下内容,它会抱怨需要使用“perform”调用该过程。但是当我尝试使用 perform 时,它告诉我未定义 perform 。解决办法是什么?

create or replace function waitris() returns void as 
$$
declare
    cnt integer;
begin
    loop
        select count(*) into cnt from taskflag where taskid = 'rdfdb' and state != 2;
        if cnt = 0 then   
            exit;
        end if;
        select pg_sleep(1);
    end loop;
end;
$$ 
language plpgsql;

select waitris();
Run Code Online (Sandbox Code Playgroud)

postgresql

8
推荐指数
1
解决办法
2万
查看次数

将 PostgreSQL 设置为记录所有语句的性能影响

Windows 7 64 位上的 PostgreSQL 9.2.2。

设置log_statementpostgresql.conf文件中指定的语句记录哪些(无,DDL,修改数据,或全部)。设置log_statement = 'all'会在多大程度上降低性能?我读过这会显着降低性能,但这些说法来自较旧的文章,那么相对于 ,我应该期望多少性能损失log_statement = 'none'

postgresql performance logs postgresql-9.2

8
推荐指数
1
解决办法
2746
查看次数

SQL Server 如何检测未使用的视图和/或获取使用情况统计信息

有没有办法确定一个视图是否不再被使用(不删除它们)?

理想情况下,我想知道SQL Server 2000 和 2012的视图用法。

我正在升级一些数据库并怀疑许多视图不再被使用。此外,一些视图将难以在新服务器上编译,因为它们访问多个数据库,其中一些未移动到新服务器。

sql-server sql-server-2000 sql-server-2012

8
推荐指数
2
解决办法
2万
查看次数

在 MySql 中显示月度考勤报告

我正在使用 Mysql DB 在 php 中做一个学校管理系统。我被困在我的项目中。请任何人建议我做错了什么。

我的数据库中有两个表;一个是存储Students记录,另一个是attendance明智地存储他们的日常

现在我想显示当月特定班级所有学生的报告,无论他们在场还是缺席。但我只在出勤表中捕获缺席学生的详细信息。

我写了 sql 查询来显示这里的结果是:

SELECT tab.class, attend, DATE, ta.rollno, ta.StdNm 
FROM tbl_absentees tab, tbl_admission ta
WHERE ta.Cls = class
  AND ta.rollno = tab.rollno
  AND class =22
  AND attend =  'A'
  AND DATE =  '2013-06-07';
Run Code Online (Sandbox Code Playgroud)

结果是:

Class Attend RollNo StudentName
Run Code Online (Sandbox Code Playgroud)

但我想以 31 天的表格方式显示,如果出席=A 显示 A 表示缺席天数,否则显示“P”表示剩余天数

我怎样才能在mysql中做到这一点?任何人都可以建议/给我一个想法来实现这一目标。

对不起,我的问题有误。实际上,我想显示特定月份的出勤报告,其中数据来自两个表:

  • 第一个表由 StudentName、RollNo、Class 组成
  • 第二个表由日期、状态、滚动编号、类别组成

现在我想显示象报告这样

mysql pivot

8
推荐指数
1
解决办法
4万
查看次数

如何将 RETURNS TABLE 与 PostgreSQL 中的现有表一起使用?

来自此处的 PostgreSQL文档

还有另一种方法可以将函数声明为返回一个集合,即使用语法 RETURNS TABLE(columns)。... 这种表示法是在 SQL 标准的最新版本中指定的,因此可能比使用 SETOF 更具可移植性。

这听起来好像RETURNS TABLE是返回多行的更新、更便携的样式。但我不确定这两种语法是否等效。

我想知道我们是否真的可以RETURNS TABLE用来代替 RETURNS SETOF

特别是,我还没有弄清楚的一种情况是:如果我们有一个现有的表foo及其关联的复合类型,我们如何在 中使用它RETURNS TABLE

使用上述链接的示例,可以使用以下内容重写RETURNS TABLE

CREATE TABLE foo (fooid int, foosubid int, fooname text);
CREATE FUNCTION getfoo(int) RETURNS SETOF foo AS $$
    SELECT * FROM foo WHERE fooid = $1;
$$ LANGUAGE SQL;
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试使用RETURNS TABLE (foo.*)and RETURNS TABLE (foo),但没有用。

postgresql set-returning-functions postgresql-9.5

8
推荐指数
1
解决办法
6088
查看次数

为什么 PostgreSQL 需要 ACCESS EXCLUSIVE LOCK?

我知道 PostgreSQL 为并发控制提供了多种锁定模式。当我通读他们的文件时,我不明白为什么ACCESS EXCLUSIVE在任何情况下都需要锁。EXCLUSIVE锁和ACCESS EXCLUSIVE锁之间的唯一区别似乎是ACCESS EXCLUSIVE锁不允许从表中读取。

但是,人们能够阅读不是一件好事吗?在什么情况下应该阻止用户阅读?在文档中,我看到通常DROP TABLE等会使用ACCESS EXCLUSIVE锁,但为什么呢?我在想,也许当您删除表时,当您尝试读取时,数据已经部分消失,因此结果将被破坏。但是后来我意识到由于 Postgres 中的所有内容都是事务性的,DROP TABLE因此在提交之前不应该生效。所以我的猜测应该是错误的。

我还是很困惑。ACCESS EXCLUSIVE当您将它与EXCLUSIVE锁定进行比较时,为什么又需要锁定?我最好的猜测是用ACCESS EXCLUSIVE锁替换锁EXCLUSIVE不会破坏 PostgreSQL。只是有时人们不希望别人阅读。我错过了什么?

postgresql mvcc

8
推荐指数
1
解决办法
5402
查看次数

PostgreSQL/PostGIS 9.6 破坏了我的复合索引

在 PostgreSQL 9.2 中,我可以轻松创建具有地理 (postGIS) 类型和整数作为复合索引的索引。但是现在(9.6)它抱怨创建索引,我不明白它提供的提示:

列和数据都已正确创建,Postgres 抱怨创建索引。

ERROR: data type integer has no default operator class for access method "gist" 
HINT: You must specify an operator class for the index 
      or define a default operator class for the data type. 
********** Error**********  
ERROR: data type integer has no default operator class for access method "gist" 
SQL state: 42704 
Hint: You must specify an operator class for the index 
      or define a default operator class for the data type.
Run Code Online (Sandbox Code Playgroud)

模式定义如下: …

postgresql postgis postgresql-9.6

8
推荐指数
1
解决办法
847
查看次数

输出在 phpMyAdmin 中被截断

我正在写一个drop语句(在 phpMyAdmin 中)来删除我数据库中一些不需要的表。如果我对我们的实时数据库运行此查询,我将看不到完整的 drop 语句(它在 50 个字符后被截断)。如果我针对该数据库的副本运行它,则会返回完整的语句。

任何想法为什么行为会有所不同?

SET GROUP_CONCAT_MAX_LEN=10000;
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) 
AS statement FROM information_schema.tables 
WHERE table_schema = 'dbname' AND table_name LIKE 'prefix%';
Run Code Online (Sandbox Code Playgroud)

mysql phpmyadmin

8
推荐指数
1
解决办法
7100
查看次数

如何将 Postgresql 更改为侦听端口 5432?

我已经在我的机器上将 Postgresql 从 9.3 升级到 9.6(linux mint rafaella-so ubuntu 14.04)

由于以前的版本在 5432 上侦听,新版本在 5433 上侦听,但我想将其更改为 5432,以便之前的配置(rails、phppgadmin 等)与新的 postgres 服务器一起使用。

我已将 postgresql.conf 中的端口从 5433 更改为 5432 并重新启动了 postgres,但这不起作用:

$ sudo netstat -nltp |grep 5432     
$ sudo netstat -nltp | grep 5433
tcp        0      0 127.0.0.1:5433          0.0.0.0:*               LISTEN      25467/postgres 
Run Code Online (Sandbox Code Playgroud)

我还尝试设置环境变量并重新启动 postgres:

PGPORT=5432; export PGPORT
Run Code Online (Sandbox Code Playgroud)

再次,仍然在 5433 上收听,而在 5432 上什么也没有。

尝试连接给了我:

$ sudo -u postgres psql postgres 
psql: could not connect to server: No such file or directory
    Is the server running locally …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.3 postgresql-9.6

8
推荐指数
1
解决办法
2万
查看次数