小编Ada*_*tan的帖子

SQL:选择除某些列之外的所有列

有没有办法访问SELECT表中的所有列,除了特定的列?从表中选择所有非 blob 或非几何列会非常方便。

就像是:

SELECT * -the_geom FROM segments;
Run Code Online (Sandbox Code Playgroud)
  • 我曾经听说这个功能被故意排除在SQL 标准之外,因为更改向表中添加列会改变查询结果。这是真的?论证有效吗?
  • 有没有解决方法,尤其是在 PostgreSQL 中?

postgresql sql-standard

140
推荐指数
5
解决办法
14万
查看次数

mysql:显示所有用户的 GRANTs

MySQL的SHOW GRANTS显示当前用户的权限。

有没有办法以root身份登录并显示所有用户的权限?

mysql permissions

107
推荐指数
7
解决办法
29万
查看次数

MySQL:如果不存在则创建索引

如果不存在,有没有办法在 MySQL 中创建索引?

MySQL 不支持明显的格式:

CREATE INDEX IF NOT EXISTS index_name ON table(column)
ERROR 1064 (42000): You have an error in your SQL syntax;...
Run Code Online (Sandbox Code Playgroud)

MySQL 版本( mysql -V) 是5.1.48,但我认为MySQL 缺乏CREATE INDEX IF NOT EXIST所有版本的能力。

仅当 MySQL 中不存在索引时,创建索引的正确方法是什么?

mysql index if-not-exists

80
推荐指数
4
解决办法
12万
查看次数

在 PostgreSQL 中存储电子邮件地址的最佳方法是什么?

在 PostgreSQL 中存储电子邮件地址的正确数据类型是什么?

我可以使用varchar(甚至text),但我想知道电子​​邮件是否有更具体的数据类型。

postgresql database-design datatypes

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

PostgreSQL:强制数据进入内存

有没有一种系统的方法可以强制 PostgreSQL 将特定表加载到内存中,或者至少从磁盘中读取它以便系统缓存它?

postgresql memory cache

41
推荐指数
3
解决办法
4万
查看次数

MySQL 将 UTC 时间设置为默认时间戳

如何设置默认值为当前 UTC 时间的时间戳列?

MySQL 使用UTC_TIMESTAMP()UTC 时间戳函数:

mysql> SELECT UTC_TIMESTAMP();
+---------------------+
| UTC_TIMESTAMP()     |
+---------------------+
| 2012-07-01 11:36:35 |
+---------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

所以我试过:

CREATE TABLE `blah` (
`creation_time` TIMESTAMP DEFAULT UTC_TIMESTAMP,
...
Run Code Online (Sandbox Code Playgroud)

和其他变体,如UTC_TIMESTAMP(),但没有成功。

mysql syntax timestamp utc-time

41
推荐指数
4
解决办法
14万
查看次数

MySQL 控制台:Ctrl+C 让我抓狂

MySQL 控制台中有一些东西让我抓狂。当我点击ctrl+c取消当前正在输入的命令时,终端退出。

在每一个终端我知道(*nix码头,PythonPostgreSQL),ctrl+c取消当前命令和ctrl+d离开终端。

此问题已在 2003 年报告,此后多次出现。

有没有办法:

  • 改变这种行为,或
  • 说服 MySQL 开发团队这真的很烦人?

mysql interface mysql-console

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

触发器:将删除的行移动到归档表

我的restrictionsPostgreSQL 数据库中有一个小(约 10 行)表,其中每天删除和插入值。

我想要一个名为 的表restrictions_deleted,从中删除的每一行都restrictions将自动存储。由于restrictions具有序列号,因此不会有重复项。

如何在 PostgreSQL 中编写这样的触发器?

postgresql trigger delete plpgsql

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

PostgreSQL:表的创建日期

我最近完成了一个项目,在此期间创建了许多数据库表。

这些表中的大多数都包含临时垃圾,我正在寻找一种简单的方法来列出所有这些表。

有没有办法列出根据创建日期排序的所有数据库表?

schema postgresql

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

REINDEX 危险吗?

我一直在尝试COUNT(*)使用具有主键的 150,000 行的表。它工具大约 5 分钟,所以我发现这是一个索引问题。

引用PostgreSQL 手册

REINDEX 类似于索引的删除和重新创建,因为索引内容是从头开始重建的。然而,锁定的考虑是相当不同的。REINDEX 锁定索引的父表的写入而不是读取。它还对正在处理的特定索引进行排他锁,这将阻止尝试使用该索引的读取 (...) 随后的 CREATE INDEX 锁定写入但不锁定读取;由于索引不存在,没有读取会尝试使用它,这意味着不会有阻塞,但读取可能会被迫进行昂贵的顺序扫描。

根据你自己的经验,你能告诉:

  • REINDEXING危险的?它会损害数据一致性吗?
  • 可以花很多时间吗?
  • 它是我的场景的可能解决方案吗?

更新:

对我们有用的解决方案是重新创建具有不同名称的相同索引,然后删除旧索引。

索引创建速度非常快,我们已将索引大小从 650 MB 减少到 8 MB。使用COUNT(*)withbetween只需 3 秒。

postgresql

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