小编MDC*_*CCL的帖子

TINYINT(1) 如何转换为 BOOL/BOOLEAN?

我可以理解,如果您更新TINYINT(1)列并传递10的值,它将分别将其转换为TRUEFALSE

我只是对当你用不同的值更新列时会发生什么感到困惑,比如2。换句话说,如果您更新TINYINT(1)值为2的列,这是TRUE还是FALSE?或者,这甚至可行吗?

mysql datatypes

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

PostgreSQL 日常触发器?

我想向我的 Postgres 数据库添加一个类似触发器的函数。问题是该函数应该每天自动执行一次并更改指定表中的值。

是否可以通过 SQL 语法来执行此操作,还是最好编写一个带有我需要的一些查询的 bash 脚本?

postgresql scripting

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

涉及书籍、作者和国家/地区的场景的实体关系图

当然是一个noobish 问题,但我还是会问它。也许别人会感激。^^

我对 MySQL 越来越熟悉,并且我试图理解创建结构良好的数据库的概念。目前我正在阅读实体关系图(ERD),我问自己:

如果我有三个由第四个链接的表格,例如: 由一个或多个作者撰写的一本书,并且每个作者都在一个或多个国家出版。

authors          books            countries
id | name        id | book        id | publishedInCountry
 1 | ...          1 | ...          1 | ...
 1 | ...          2 | ...          2 | ...
 1 | ...          2 | ...          3 | ...
 4 | ...          1 | ...          3 | ...


linkTable
idOfAuthor | idOfBook   | idOfCountry
 1         | 1          | 1
...
Run Code Online (Sandbox Code Playgroud)

这些 ERD 会是什么样子?

附加信息

我想到了:

[authors]-- < 是 > 的作者 -- [books] …

erd database-design

0
推荐指数
1
解决办法
1277
查看次数

在 SQLite 3 中的 WITH RECURSIVE 之前使用 EXCEPT

有没有办法做到这一点?我正在尝试做这样的事情:

SELECT x
FROM table
EXCEPT
WITH RECURSIVE ...();
Run Code Online (Sandbox Code Playgroud)

sqlite except

0
推荐指数
1
解决办法
541
查看次数

如何设置删除多个父行和子行的触发器?

以下是相关表格:

Table_B
B_ID(PK)  Name  A_Id
1         A     1
2         B     1

Table_C
C_ID   B_Id(FK)
1      1
2      1
Run Code Online (Sandbox Code Playgroud)

现在我想Table_B从它的表中删除行Table_C。以下是我正在触发的查询:

delete from Table_B where A_Id = 1
Run Code Online (Sandbox Code Playgroud)

我也想从其子项中删除所有行。可以用触发器吗?我在 上做了一个触发器Table_B,但它只删除了一行;所以我必须运行一个循环。

谢谢。

trigger sql-server

0
推荐指数
1
解决办法
1094
查看次数

日志驱动器在 SQL Server 中被填满

我们正面临日志驱动器 ( E :) 经常被填满的问题。

我们的 DBMS 是设置了 AOAG 的 SQL Server 2014 SP1。

我们有每周维护任务:

  1. 重建索引(运行接近 1 小时)
  2. 更新统计信息(运行 Cloe 到 30 分钟)
  3. 检查数据库运行接近 30 分钟
  4. 完整备份运行接近 4 小时
  5. 差速运行接近 2 小时

我们没有看到任何繁重的事务处理。

但是我们可以看到E:被填满了。

以下是自动增长设置:

  • 10% 无限增长。

注意:由于这是 AOAG 环境,我们每 30 分钟安排一次事务日志备份。

我的问题:

  • 在这种情况下,是什么让E:被填满了?

  • 为什么我的日志没有被截断?

  • 在这种情况下,我们需要扩展 E: 吗?

  • 截断我的日志的行动计划应该是什么?

截至目前,在我们决定下一个扩展驱动器的计划之前,我们不时缩小文件以释放空间。

请建议。

sql-server backup transaction-log availability-groups sql-server-2014

0
推荐指数
1
解决办法
4252
查看次数

按父列排序的不同子行

我有一个查询,我想在其中检索不同的Child行,但按Parent. 如果我执行以下操作,则会收到错误消息,因为 中指定的列ORDER BY未包含在DISTINCT列表中:

SELECT
    DISTINCT c.foo, c.bar
    FROM Parent p
    JOIN Child c on c.parentId = p.id
    ORDER BY p.createdDate
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加p.createdDate到选择列表中,我将失去Child行的独特性,因为p.createdDate它们都不同。

如果我使用 CTE 或子查询首先进行排序,然后从中选择不同的行,则外部查询不保证它将保持内部/cte 查询的顺序。

有没有办法实现这一目标?

sql-server-2008 sql-server order-by t-sql distinct

0
推荐指数
1
解决办法
1767
查看次数

在一台服务器上安装多个 SQL Server?

在我们的整个业务中,我们有几个小批量 SQL Server 安装;添加,因为我们已经为业务开发/收购了新产品。每个都位于一个虚拟服务器上,为了争论,假设有 5 个这样的服务器,每个都分配了 8Gb RAM 和 4 个 CPU……在我看来,我认为将这些整理到一个服务器上会更有意义,增强了内存/CPU。

我认为这样做的优点在于它可以更轻松地跟踪服务器、维护它们、升级(在需要时)、分配权限会更容易并且性能可能会提高(通过添加额外的 RAM/CPU)。据推测,我们还可以让服务器复制/负载平衡以提供额外的弹性。

我这样认为正确吗?

反对这样做的考虑是什么?

sql-server

0
推荐指数
1
解决办法
105
查看次数

使用代理键的缺点是什么?

我正在使用 MS SQL Server,但在一般数据库设计中,我想知道当数据库中的每一行都有其自动生成的代理键值时会出现什么问题。

我知道一些优点,比如主键不需要标识没有NULL的唯一列,不需要管理复合主键,范式更容易管理,唯一性有保证。

我想知道,是否有任何关于性能或索引结构等的充分理由应该使我们使用真实世界的事实键而不是代理键?

谢谢。

database-design primary-key surrogate-key candidate-key

0
推荐指数
1
解决办法
1244
查看次数

如何编写查询以获取具有相同重量的骑手的串联名称?

我想从一个名为 的表中检索一个包含所有相同重量的 Riders 的表Rider,该表是这样定义的:

CREATE TABLE Rider(
    name VARCHAR(30),
    weight REAL,
    PRIMARY KEY(name)
) ENGINE=innodb;
Run Code Online (Sandbox Code Playgroud)

里面的数据是:

Alan  55
Ana   55
Anne  50
Bill  65
David 60
Julia 55
Peter 65
Stan  60
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果:

50 Anne
55 Alan Ana Julia
60 David Stan
65 Bill Peter
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做。我只能设法按重量对它们进行排序:

  SELECT weight, name 
    FROM Rider 
GROUP BY weight;
Run Code Online (Sandbox Code Playgroud)

非常感谢所有帮助!

mysql mysql-8.0

0
推荐指数
1
解决办法
25
查看次数

wal_level hot_standby 和logical

我有一个 PostgreSQL 设置,有一个主站和三个从站。它被配置为流式复制。

现在,我只想使用pglogical将几个表从主服务器复制到分析服务器。为此,我们需要启用逻辑wal_level. 那么如何在不破坏现有复制的情况下启用它呢?

postgresql replication configuration postgresql-9.6

0
推荐指数
1
解决办法
2190
查看次数

查询连接四个表导致一行

我有这两个查询,它们从四个表中提取数据:

select files.id, files.name, dirs.dir
from files
inner join dirs on dirs.id = files.idDir
where files.id = 45

select label
from labels
inner join labels_files on labels_files.idLabel = labels.id
where labels_files.idFile = 45
Run Code Online (Sandbox Code Playgroud)

第一个查询返回 1 行。第二个查询返回 1 个或多个 row/s

我的目标是在结果集中获得一个查询和一行。说:

--------------------------------------------------
45 | test.txt  |  /home  | label1, label2, labeln |
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我想我应该尝试派生表,但一直在尝试无济于事。

mariadb join mariadb-10.3

-1
推荐指数
1
解决办法
66
查看次数

如何忽略 CTE Select 语句中的重复行?

我试图忽略来自 CTE 的重复行,但我无法做到这一点,似乎 CTE 不允许使用ROWNUM()变量到WHERE子句,因为它在尝试这样做时显示“无效的列名 'numrows' ”错误.

SELECT在 a 中使用时如何忽略重复的行CTE

SQL查询:

DECLARE @BatchID uniqueidentifier = NEWID();
DECLARE @ClusterID SMALLINT = 1;
DECLARE @BatchSize integer = 20000;
DECLARE @myTableVariable TABLE(
    EventID BIGINT,
    HotelID int,
    BatchStatus varchar(50),
    BatchID uniqueidentifier);

WITH PendingExtResSvcEventsData_Batch AS (
    SELECT TOP (@BatchSize) t.EventID, t.HotelID, t.BatchStatus, t.BatchID,
        ROW_NUMBER() OVER (PARTITION BY t.EventID ORDER BY t.EventID) numrows 
    FROM ExtResSvcPendingMsg t WITH (NOLOCK)
    WHERE t.ClusterID = @ClusterID
      AND numrows = 1
      -- Exclude …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

-2
推荐指数
1
解决办法
1264
查看次数