小编dez*_*zso的帖子

如何在只有 IDENTITY 列的表中插入?

给定一个只有 IDENTITY 列的表,如何插入新行?我尝试了以下方法:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)
Run Code Online (Sandbox Code Playgroud)

我正在测试一些东西,只需要 IDENTITY 列。它不是用于生产。否则,这样的表可以用作序列生成器,不需要其他列。

sql-server identity

22
推荐指数
1
解决办法
7270
查看次数

努力调试 Amazon RDS MySQL 实例上的高 CPU 使用率

我们正在运行 m1.xlarge MySQL RDS 服务器,但在 CPU 使用率高时遇到了一些问题。几周前,我们遇到了一些问题,大型实例的 CPU 利用率达到 100%。当我们将大小升级到 xlarge 时,情况稳定了一段时间,但 CPU 使用率逐渐再次上升。

在过去一周左右的时间里,CPU 利用率一直处于 90 年代的高位,昨天一直达到 100% 左右,这使我们的生产站点陷入停顿。重新启动数据库服务器后,CPU 使用率在数小时内回升至相同水平。

我已经在 mysql 服务器上运行了 show processlist,并且一直在通过 MySQL admin 进行监控。似乎也没有任何特别长时间运行的查询或大量查询。有几个进程长时间处于睡眠状态……这些是在我们的主应用程序之外运行的独立工作守护进程,它们与数据库进行通信。我在下面的 processlist 输出中复制了服务器名称,以说明它们是什么:

+------+----------+---------------------------------------------------+--------------+---------+-------+--------------+----------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+----------+---------------------------------------------------+--------------+---------+-------+--------------+----------------------------------------------------------------------------------------+
| 13 | rdsadmin | localhost:43513 | mysql | Sleep | 14 | | NULL |
| 15 | proddbuser | app-server-1.eu-west-1.compute.internal:36460 | proddb | Sleep | 46 | | …
Run Code Online (Sandbox Code Playgroud)

mysql

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

PostgreSQL:无法将目录更改为 /root

我正在尝试将表planet_osm_polygon从一个数据库复制osm到另一个数据库test。我su postgres并执行了pg_dump.

问题:但是我收到错误could not change directory to "/root"并且Password:提示出现了两次!有没有办法pg_dump在登录时执行root

root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | 
    psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:
Run Code Online (Sandbox Code Playgroud)

更新

问题#2:public即使我通过了 flag ,表似乎也被复制到了模式中--table="staging.planet_osm_polygon"。为什么不将其复制到 schema staging

postgresql postgis postgresql-9.1

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

对数据库中的所有模式授予使用权?

我想要GRANT USAGE一个给定数据库的用户/角色。数据库有许多模式。

我知道有一个ON ALL TABLES IN SCHEMA,但我想要“所有模式”。我试过了GRANT USAGE .. ON DATABASE,但这显然是错误的(它实际上并不存在)。

这是针对 Postgres 9.3 或 9.4,它恰好是 AWS RDS 上的服务器。

postgresql postgresql-9.3 amazon-rds

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

错误日志位置?

MySQL 是否写入任何日志文件?如果是,它的路径是什么(在 ubuntu/Linux 上)?

mysql log

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

简单连接中未使用的主键索引

我有以下表格和索引定义:

CREATE TABLE munkalap (
    munkalap_id serial PRIMARY KEY,
    ...
);

CREATE TABLE munkalap_lepes (
    munkalap_lepes_id serial PRIMARY KEY,
    munkalap_id integer REFERENCES munkalap (munkalap_id),
    ...
);

CREATE INDEX idx_munkalap_lepes_munkalap_id ON munkalap_lepes (munkalap_id);
Run Code Online (Sandbox Code Playgroud)

为什么在以下查询中没有使用 munkalap_id 上的任何索引?

EXPLAIN ANALYZE SELECT ml.* FROM munkalap m JOIN munkalap_lepes ml USING (munkalap_id);

QUERY PLAN
Hash Join  (cost=119.17..2050.88 rows=38046 width=214) (actual time=0.824..18.011 rows=38046 loops=1)
  Hash Cond: (ml.munkalap_id = m.munkalap_id)
  ->  Seq Scan on munkalap_lepes ml  (cost=0.00..1313.46 rows=38046 width=214) (actual time=0.005..4.574 rows=38046 loops=1)
  ->  Hash  (cost=78.52..78.52 rows=3252 …
Run Code Online (Sandbox Code Playgroud)

postgresql performance index join primary-key

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

一次将多个数据库从 C: 移动到 D:

我的 SQL Server 2008 R2 有 323 个数据库,在我的 C: 驱动器上消耗了大约 14 GB,这是一个快速的 SSD。

因为我想回收 C: 驱动器上的一些空间,所以我想将它们移动到我的 D: 驱动器。

我找到了这篇 MSDN 文章,但这似乎是只移动一个数据库的过程。

是否有自动方式或脚本一次移动我的所有数据库?

sql-server sql-server-2008-r2 alter-database

17
推荐指数
3
解决办法
1万
查看次数

VACUUM FULL 和 CLUSTER 的 PostgreSQL 区别

我有一个表,其中数据占用 200 GB 大小,其上的 6 个索引占用 180 GB 大小。它膨胀了 30%,所以我想回收它占用的不需要的空间。它聚集在job_id_idx 索引上。

那么要回收空间我需要使用cluster命令还是vacuum full命令?

  1. 这两个命令有什么区别?

  2. vacuum full为了通过一些列相同cluster的命令?

  3. 两个命令中是否都重新创建了索引?

  4. 在我的情况下,哪一个会更快?

PostgreSQL 数据库版本为 9.1

postgresql clustered-index vacuum postgresql-9.1

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

如何在 MySQL 中使用 REGEXP 使用 SUBSTRING

我有以下情况。我必须使用 MySQL 从描述中子字符串正则表达式。描述:

Lorem D9801 ipsum dolor 坐 amet

其中 D9801 是 REGEXP。每个强文本描述都有不同的内容,但我的正则表达式应该如下所示:REGEXP 'D[[:digit:]]{4}'

REGEXP 总是以“D”开头和“xxxx” - 4 位数字结尾:Dxxxx

我知道 REGEXP 只返回 true/false 值,但如何查询只返回“D9801”值?

我试过这样的事情:

SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5)
FROM (
   SELECT "Lorem D9801 ipsum dolor sit amet" AS description
) temp
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的,所以我尝试这样做:

SELECT 
    id, 
    SUM(description REGEXP 'D[[:digit:]]{4}') AS matches, 
    CASE
        WHEN (SUM(description REGEXP 'D[[:digit:]]{4}') > 0) THEN 
            SUBSTRING(description, LOCATE( /*POSITION_OF_REGEXP_IN_DESC*/ , description), 5)
        ELSE 'Brak schematu'
    END AS show_substr FROM ps_description GROUP BY id; …
Run Code Online (Sandbox Code Playgroud)

mysql regular-expression

16
推荐指数
1
解决办法
6万
查看次数

在 postgres 中使用 COPY FROM STDIN

我刚开始使用 Postgres,我正在尝试创建一个示例数据库来了解它的功能,环顾四周,我在 pgfoundry.org 中找到了一些脚本。我理解这些命令,因为我之前同时使用了 Oracle 和 MS-SQL,但是我运行的所有脚本在到达“COPY FROM”指令时都返回错误。更准确地说,错误是在应该插入给定表中的第一个元素处抛出。

我已经尝试将脚本作为查询和 pgScripts 运行,但是在这两种方式中,我在 COPY FROM 之后的第一行都收到错误。

我正在使用 pgAdminIII,我使用 StackBuilder 将 PostgreSQL 9.2.4.1 安装为 DB 驱动程序。我是否可能缺少一些阻止我运行此命令的基本配置,或者我只是不明白他们的工作方式?

编辑:
错误是:

ERROR:  syntax error at or near "7"
LINE 5600: 7 4 13 37 2012-03-10 16:41:43.797787 2012-03-10 16:41:43.797...
           ^

********** Error **********

ERROR: syntax error at or near "7"
SQL status: 42601
Char: 140891`
Run Code Online (Sandbox Code Playgroud)

文字在哪里:

COPY action_abilitations (id, group_action_id, partecipation_role_id, group_id, created_at, updated_at) FROM stdin;
7   4   13  37  2012-03-10 16:41:43.797787  2012-03-10 16:41:43.797787`
Run Code Online (Sandbox Code Playgroud)

postgresql pgadmin bulkcopy

16
推荐指数
1
解决办法
5万
查看次数