小编The*_*ler的帖子

选择除某些 PostgreSQL 之外的所有列

我必须比较表,但有一些列我不需要比较,我只知道它们(不是我必须比较的那些)所以我想从表中选择所有列,除了我不需要的列比较。

我想到了这样的事情:

SELECT 'SELECT ' || array_to_string(ARRAY(SELECT 'o' || '.' || c.column_name
    FROM information_schema.columns As c
        WHERE table_name = 'office' 
        AND  c.column_name NOT IN('id', 'deleted')
), ',') || ' FROM officeAs o' As sqlstmt
Run Code Online (Sandbox Code Playgroud)

但是输出SELECT * FROM office As o 不是select a,b,c from office没有id and deleted列。

有没有人知道这个查询有什么问题?

sql postgresql

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

我们应该使用序列还是身份作为主键?

我们正在创建一个包含 20 多个表的新数据库,我们的数据库支持:

  • 序列。
  • 标识列(始终生成为标识/序列)。

所以,问题是:我们应该使用序列还是恒等式?哪一个更好?团队似乎在这个问题上存在分歧,所以我想听听优点缺点,以帮助做出决定。

添加数据库详细信息:

  • 我们正在 IBM DB2 上创建新数据库,但我们需要确保它将与未来迁移到 PostgreSQL 的计划兼容。

sql database db2 postgresql primary-key-design

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

数据库排序规则区分大小写,但 SQL 查询不区分大小写

我正在使用 SSIS 运行一个项目,现在使用 CS(区分大小写)排序规则创建新数据库,但所有查询、存储过程等都是以不区分大小写的方式编写的,因此现在 SQL Server 无法识别它们。我需要在查询中更改表名、列名……与 SQL Server 中的完全相同。

是否可以拥有包含 CI 存储过程、查询等的 CS 数据库...?

sql t-sql database sql-server sql-server-2008

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

MySQL 是否支持部分索引?

部分索引仅包括表行的子集。

我已经能够在 Oracle、DB2、PostgreSQL 和 SQL Server 中创建部分索引。例如,在 SQL Server 中,我可以将索引创建为:

create index ix1_case on client_case (date) 
  where status = 'pending';
Run Code Online (Sandbox Code Playgroud)

这个索引很便宜,因为它不包括表的所有 500 万行,而只包括未决案例,不应超过一千行。

我如何在 MySQL 中做到这一点?

mysql sql database indexing relational-database

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

MySQL架构设计:一张带类型列的表 VS 多张表

我正在制作一个关于电影的网站,我想在电影和演员(导演、编剧和演员)之间建立关系,有两种可能性可以实现这一点,第一个是创建每个演员的表格:

CREATE TABLE director(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));  
CREATE TABLE writer(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));  
CREATE TABLE actor(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
Run Code Online (Sandbox Code Playgroud)

并在每个表和电影表之间建立多对多关系。
第二种可能性是为演员表创建一个带有类型列的表,该列可以引用导演、作家或演员,并在该表和电影表之间建立多对多关系。

CREATE TABLE cast(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), type varchar(10));
Run Code Online (Sandbox Code Playgroud)

注意:对于演员,自动生成表将有一些附加列:character_name、role...
那么对于这种情况哪种可能性更好?

mysql sql

6
推荐指数
2
解决办法
2643
查看次数

与UNION相比,INTERSECT的优先级更高吗?

如果我们考虑三个单列表,每个表有两行:A =(1,2),B =(2,3),C =(3,4)。然后,如果我们试图UNIONINTERSECT一起使用括号,结果是相当一致:

  • (select * from a union select * from b) intersect select * from c -> 3
  • select * from a union (select * from b intersect select * from c) -> 1、2、3

但是简单明了呢...

  • select * from a union select * from b intersect select * from c

我已经在几个数据库(SQL Fiddle)上进行了尝试,根据经验,我得到的是:

  • 在一个角落中,我们拥有Oracle,PostgreSQL和H2,它们将INTERSECT的优先级与UNION 相同(因此结果为3)。
  • 然后,在另一个角落是DB2,SQL Server,MariaDB,Apache Derby和HyperSQL,它们认为INTERSECT的优先级高于UNION(因此,结果为1、2、3)。
  • 由于MySQL和Sybase ASE根本没有实现INTERSECT,因此它们保持同步。

你们知道这方面是否有正式定义吗?我略过了SQL-92规范,但在该主题上找不到任何东西。

sql union intersect

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

SQL 类型 TIME WITH TIMEZONE 有意义吗?

在将一些数据库列映射到 Java 类时,我偶然发现了这个不起眼的SQL-92 标准类型(据我所知由 PostgreSQL、H2 和 HyperSQL 实现)。我从未使用过它,但我想了解如果我找到它,如何清楚地将它映射到 Java 类型。

以下是我可以看到的变体:

  • 情况ATIME类型,例如15:20:01。这是“当地时间”。时区对于应用程序来说是显而易见的,因此数据库不会记录它。

  • 情况 BTIME带有偏移量的 ,如 中15:20:01+04:00。它代表“世界时间”。这个时间可以简单地转换为 UTC 或任何其他世界时钟。

  • 情况 CTIME带有时区的 A,例如15:20:01 EDT。由于解释时间的规则很大程度上取决于具体的日期,如果没有日期,我就无法真正理解它。但是,如果我添加日期,它就会变成TIMESTAMP,那就完全不同了。

那么,SQL 标准是否弄错了?或者也许“带有时区的时间”应该始终解释为“带有偏移量的时间”(情况 B)?

sql ansi-sql-92 type-mapping

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

为警告创建 Java 注释 - @NonOptimal

@Deprecated注释有什么特别之处我无法重现吗?

我需要创建一个类似于@Deprecated在 Eclipse 和构建时生成警告的注释。当我标记一个方法时,@Deprecated我会收到很好的警告。例如,如果我有一个旧方法(出于兼容性原因我可能仍然保留):

@Deprecated
public List<Account> getClientAccounts(final int clientId) {
  // Implement search...
}
Run Code Online (Sandbox Code Playgroud)
  • 然后,如果我尝试在 Eclipse 中使用它,我可以看到它带有删除线,并且左侧栏中有一个黄色图标:

    在此处输入图片说明

  • 此外,在构建时,我可以看到:

    [警告] app1/src/test/java/com/app1/MyApp.java: app1/src/test/java/com/app1/MyApp.java 使用或覆盖已弃用的 API。

现在,根据我无法控制的外部因素(例如缺少数据库索引),有些方法不是最佳的,我想用我全新的@NonOptimal注释清楚地标记它们。我需要增加问题的可见性。到目前为止,我有:

@Retention(RUNTIME)
@Target(METHOD)
// What else here?
public @interface NonOptimal {
}
Run Code Online (Sandbox Code Playgroud)

如何创建此注释?

java annotations compiler-warnings

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

PostgreSQL将所有值更新为大写的一列

我有一张桌子:客户和列= [名称,姓氏,语言]

我想将所有语言列的值都更新为大写,该怎么办?

我见过upper()方法,但是它用于选择操作。我需要更新。

sql postgresql

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

单击列表项显示更多信息

我不确定这是怎么称呼所以我拍了一张照片.

我想显示一个用户列表,当有人点击其中一个用户时,下面会显示一些细节.再次点击它应该再次隐藏.理想情况下有一些滑动动画.它不应该覆盖列表的其余部分,所以其他一切都必须向下移动.

我希望你明白我的意思.

有人可以告诉我我应该谷歌或有一个例子吗?

在此输入图像描述

java user-interface android

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