AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 29016
Accepted
Bob Jansen
Bob Jansen
Asked: 2012-11-21 13:46:24 +0800 CST2012-11-21 13:46:24 +0800 CST 2012-11-21 13:46:24 +0800 CST

不重复选择

  • 772

我有一个表格,其中包含对沿图形边缘移动的对象的观察,该表格具有以下形式:

PK | TIMESTAMP | object_id | from_id | to_id

其中object_id是某个对象的 ID,from_id并且to_id是顶点。

由于以高频率观察到运动,因此元组

(object_id, from_id, to_id)

PK对于不同的和经常重复TIMESTAMPS。我对所有单独的边遍历感兴趣,所以如果一个 id 为 1 的对象从顶点 1 移动到 2,从 2 到 1 和从 1 到 2,我想得到一个结果:

object_id | from_id | to_id
        1 |       1 |     2
        1 |       2 |     1
        1 |       1 |     2

我的问题:如何编写此查询?

mysql graph
  • 1 1 个回答
  • 101 Views

1 个回答

  • Voted
  1. Best Answer
    RolandoMySQLDBA
    2012-11-21T14:42:56+08:002012-11-21T14:42:56+08:00

    元组必须以from_id, to_id这样的方式排序,当from_id或to_id发生变化时,它会属于不同的分组。我想把它写成一个存储过程,但我想到了一些更有趣的东西(我刚刚从我回答这个问题中得到这个想法大约 3 小时前更新表上的排名)

    我会分阶段进行

    第一阶段:样本数据

    DROP DATABASE IF EXISTS bootvis;
    CREATE DATABASE bootvis;
    USE bootvis
    CREATE TABLE graph_edges
    (
        pk int not null auto_increment,
        object_id int default null,
        tm timestamp not null default current_timestamp,
        from_id int,
        to_id int,
        primary key (pk)
    );
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    SELECT SLEEP(2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    SELECT SLEEP(1);
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1);
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    UPDATE graph_edges SET object_id = 1 WHERE object_id IS NULL;
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1);
    SELECT SLEEP(2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    UPDATE graph_edges SET object_id = 2 WHERE object_id IS NULL;
    SELECT * FROM graph_edges;
    

    第 2 阶段:加载样本数据

    mysql> DROP DATABASE IF EXISTS bootvis;
    Query OK, 1 row affected (0.03 sec)
    
    mysql> CREATE DATABASE bootvis;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> USE bootvis
    Database changed
    mysql> CREATE TABLE graph_edges
        -> (
        ->     pk int not null auto_increment,
        ->     object_id int default null,
        ->     tm timestamp not null default current_timestamp,
        ->     from_id int,
        ->     to_id int,
        ->     primary key (pk)
        -> );
    Query OK, 0 rows affected (0.12 sec)
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    Query OK, 4 rows affected (0.05 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> SELECT SLEEP(2);
    +----------+
    | SLEEP(2) |
    +----------+
    |        0 |
    +----------+
    1 row in set (2.00 sec)
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    Query OK, 2 rows affected (0.05 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> SELECT SLEEP(1);
    +----------+
    | SLEEP(1) |
    +----------+
    |        0 |
    +----------+
    1 row in set (1.00 sec)
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2);
    Query OK, 2 rows affected (0.07 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1);
    Query OK, 8 rows affected (0.08 sec)
    Records: 8  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    Query OK, 4 rows affected (0.13 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    Query OK, 2 rows affected (0.10 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> UPDATE graph_edges SET object_id = 1 WHERE object_id IS NULL;
    Query OK, 22 rows affected (0.06 sec)
    Rows matched: 22  Changed: 22  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2);
    Query OK, 2 rows affected (0.05 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1),(2,1);
    Query OK, 8 rows affected (0.05 sec)
    Records: 8  Duplicates: 0  Warnings: 0
    
    mysql> SELECT SLEEP(2);
    +----------+
    | SLEEP(2) |
    +----------+
    |        0 |
    +----------+
    1 row in set (2.00 sec)
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    Query OK, 4 rows affected (0.08 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    Query OK, 2 rows affected (0.05 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    Query OK, 4 rows affected (0.06 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    Query OK, 2 rows affected (0.05 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (1,2),(1,2),(1,2),(1,2);
    Query OK, 4 rows affected (0.05 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> INSERT INTO graph_edges (from_id,to_id) VALUES (2,1),(2,1);
    Query OK, 2 rows affected (0.06 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> UPDATE graph_edges SET object_id = 2 WHERE object_id IS NULL;
    Query OK, 28 rows affected (0.06 sec)
    Rows matched: 28  Changed: 28  Warnings: 0
    
    mysql> SELECT * FROM graph_edges;
    +----+-----------+---------------------+---------+-------+
    | pk | object_id | tm                  | from_id | to_id |
    +----+-----------+---------------------+---------+-------+
    |  1 |         1 | 2012-11-20 17:29:13 |       1 |     2 |
    |  2 |         1 | 2012-11-20 17:29:13 |       1 |     2 |
    |  3 |         1 | 2012-11-20 17:29:13 |       1 |     2 |
    |  4 |         1 | 2012-11-20 17:29:13 |       1 |     2 |
    |  5 |         1 | 2012-11-20 17:29:15 |       2 |     1 |
    |  6 |         1 | 2012-11-20 17:29:15 |       2 |     1 |
    |  7 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    |  8 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    |  9 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 10 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 11 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 12 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 13 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 14 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 15 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 16 |         1 | 2012-11-20 17:29:16 |       2 |     1 |
    | 17 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    | 18 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    | 19 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    | 20 |         1 | 2012-11-20 17:29:16 |       1 |     2 |
    | 21 |         1 | 2012-11-20 17:29:17 |       2 |     1 |
    | 22 |         1 | 2012-11-20 17:29:17 |       2 |     1 |
    | 23 |         2 | 2012-11-20 17:29:17 |       1 |     2 |
    | 24 |         2 | 2012-11-20 17:29:17 |       1 |     2 |
    | 25 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 26 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 27 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 28 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 29 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 30 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 31 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 32 |         2 | 2012-11-20 17:29:17 |       2 |     1 |
    | 33 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 34 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 35 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 36 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 37 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    | 38 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    | 39 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 40 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 41 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 42 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 43 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    | 44 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    | 45 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 46 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 47 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 48 |         2 | 2012-11-20 17:29:19 |       1 |     2 |
    | 49 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    | 50 |         2 | 2012-11-20 17:29:19 |       2 |     1 |
    +----+-----------+---------------------+---------+-------+
    50 rows in set (0.00 sec)
    
    mysql>
    

    第 3 阶段:创建查询,其中运行的计数器在元组更改时更改(称之为元组更改查询)

    SET @r=0;
    SET @old_from=-1;
    SET @old_to=-1;
    SELECT from_id,to_id,
    @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
    @old_from:=from_id,@old_to:=to_id,
    @r:=(@r+@inc) as group_number
    FROM graph_edges;
    

    阶段 4:运行元组更改查询

    mysql> SET @r=0;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_from=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_to=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT from_id,to_id,
        -> @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
        -> @old_from:=from_id,@old_to:=to_id,
        -> @r:=(@r+@inc) as group_number
        -> FROM graph_edges;
    +---------+-------+------------------------------------------------+--------------------+----------------+--------------+
    | from_id | to_id | @inc:=((@old_from<>from_id)||(@old_to<>to_id)) | @old_from:=from_id | @old_to:=to_id | group_number |
    +---------+-------+------------------------------------------------+--------------------+----------------+--------------+
    |       1 |     2 |                                              1 |                  1 |              2 |            1 |
    |       1 |     2 |                                              0 |                  1 |              2 |            1 |
    |       1 |     2 |                                              0 |                  1 |              2 |            1 |
    |       1 |     2 |                                              0 |                  1 |              2 |            1 |
    |       2 |     1 |                                              1 |                  2 |              1 |            2 |
    |       2 |     1 |                                              0 |                  2 |              1 |            2 |
    |       1 |     2 |                                              1 |                  1 |              2 |            3 |
    |       1 |     2 |                                              0 |                  1 |              2 |            3 |
    |       2 |     1 |                                              1 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       2 |     1 |                                              0 |                  2 |              1 |            4 |
    |       1 |     2 |                                              1 |                  1 |              2 |            5 |
    |       1 |     2 |                                              0 |                  1 |              2 |            5 |
    |       1 |     2 |                                              0 |                  1 |              2 |            5 |
    |       1 |     2 |                                              0 |                  1 |              2 |            5 |
    |       2 |     1 |                                              1 |                  2 |              1 |            6 |
    |       2 |     1 |                                              0 |                  2 |              1 |            6 |
    |       1 |     2 |                                              1 |                  1 |              2 |            7 |
    |       1 |     2 |                                              0 |                  1 |              2 |            7 |
    |       2 |     1 |                                              1 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       2 |     1 |                                              0 |                  2 |              1 |            8 |
    |       1 |     2 |                                              1 |                  1 |              2 |            9 |
    |       1 |     2 |                                              0 |                  1 |              2 |            9 |
    |       1 |     2 |                                              0 |                  1 |              2 |            9 |
    |       1 |     2 |                                              0 |                  1 |              2 |            9 |
    |       2 |     1 |                                              1 |                  2 |              1 |           10 |
    |       2 |     1 |                                              0 |                  2 |              1 |           10 |
    |       1 |     2 |                                              1 |                  1 |              2 |           11 |
    |       1 |     2 |                                              0 |                  1 |              2 |           11 |
    |       1 |     2 |                                              0 |                  1 |              2 |           11 |
    |       1 |     2 |                                              0 |                  1 |              2 |           11 |
    |       2 |     1 |                                              1 |                  2 |              1 |           12 |
    |       2 |     1 |                                              0 |                  2 |              1 |           12 |
    |       1 |     2 |                                              1 |                  1 |              2 |           13 |
    |       1 |     2 |                                              0 |                  1 |              2 |           13 |
    |       1 |     2 |                                              0 |                  1 |              2 |           13 |
    |       1 |     2 |                                              0 |                  1 |              2 |           13 |
    |       2 |     1 |                                              1 |                  2 |              1 |           14 |
    |       2 |     1 |                                              0 |                  2 |              1 |           14 |
    +---------+-------+------------------------------------------------+--------------------+----------------+--------------+
    50 rows in set (0.00 sec)
    
    mysql>
    

    请注意,@inc仅当元组更改时才会更改!!!

    阶段 5:将元组更改查询放在子查询中,从元组更改查询中提取所需数据,运行 GROUP BY group_number(称为重复提取查询)

    SET @r=0;
    SET @old_from=-1;
    SET @old_to=-1;
    SELECT group_number,from_id,to_id FROM
    (
        SELECT from_id,to_id,
        @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
        @old_from:=from_id,@old_to:=to_id,
        @r:=(@r+@inc) as group_number
        FROM graph_edges
    ) g GROUP BY group_number;
    

    阶段 6:运行重复提取查询

    mysql> SET @r=0;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_from=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_to=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT group_number,from_id,to_id FROM
        -> (
        ->     SELECT from_id,to_id,
        ->     @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
        ->     @old_from:=from_id,@old_to:=to_id,
        ->     @r:=(@r+@inc) as group_number
        ->     FROM graph_edges
        -> ) g GROUP BY group_number;
    +--------------+---------+-------+
    | group_number | from_id | to_id |
    +--------------+---------+-------+
    |            1 |       1 |     2 |
    |            2 |       2 |     1 |
    |            3 |       1 |     2 |
    |            4 |       2 |     1 |
    |            5 |       1 |     2 |
    |            6 |       2 |     1 |
    |            7 |       1 |     2 |
    |            8 |       2 |     1 |
    |            9 |       1 |     2 |
    |           10 |       2 |     1 |
    |           11 |       1 |     2 |
    |           12 |       2 |     1 |
    |           13 |       1 |     2 |
    |           14 |       2 |     1 |
    +--------------+---------+-------+
    14 rows in set (0.00 sec)
    
    mysql>
    

    阶段 7:(可选)显示每个 group_number 的计数

    SET @r=0;
    SET @old_from=-1;
    SET @old_to=-1;
    SELECT group_number,from_id,to_id,count(1) group_count FROM
    (
        SELECT from_id,to_id,
        @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
        @old_from:=from_id,@old_to:=to_id,
        @r:=(@r+@inc) as group_number
        FROM graph_edges
    ) g GROUP BY group_number;
    

    阶段 8:(可选)为每个 group_number 运行显示计数查询

    mysql> SET @r=0;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_from=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SET @old_to=-1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT group_number,from_id,to_id,count(1) group_count FROM
        -> (
        ->     SELECT from_id,to_id,
        ->     @inc:=((@old_from<>from_id)||(@old_to<>to_id)),
        ->     @old_from:=from_id,@old_to:=to_id,
        ->     @r:=(@r+@inc) as group_number
        ->     FROM graph_edges
        -> ) g GROUP BY group_number;
    +--------------+---------+-------+-------------+
    | group_number | from_id | to_id | group_count |
    +--------------+---------+-------+-------------+
    |            1 |       1 |     2 |           4 |
    |            2 |       2 |     1 |           2 |
    |            3 |       1 |     2 |           2 |
    |            4 |       2 |     1 |           8 |
    |            5 |       1 |     2 |           4 |
    |            6 |       2 |     1 |           2 |
    |            7 |       1 |     2 |           2 |
    |            8 |       2 |     1 |           8 |
    |            9 |       1 |     2 |           4 |
    |           10 |       2 |     1 |           2 |
    |           11 |       1 |     2 |           4 |
    |           12 |       2 |     1 |           2 |
    |           13 |       1 |     2 |           4 |
    |           14 |       2 |     1 |           2 |
    +--------------+---------+-------+-------------+
    14 rows in set (0.00 sec)
    
    mysql>
    

    第 9 阶段:试一试!!!

    • 5

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve