我知道有几个符号可以表达实体之间的基数。
但是在 ascii 中是否有一种实用的通用方法来表达基数?
示例:用户——组。一个用户可以有多个组,一个组可以有多个用户。
我看了这个页面:https : //en.wikipedia.org/wiki/Cardinality_(data_modeling)
例如:一对多的“订单” ?? “行项目”
以下是表示基数的一些图形方式:
https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Cardinalities
表示基数的最常见方式是什么?
这个有标准/rfc吗?
我有这种 N:M 关系:
CREATE TABLE auth_user (
id integer NOT NULL PRIMARY KEY,
username character varying(150) NOT NULL UNIQUE
);
CREATE TABLE auth_group (
id integer NOT NULL PRIMARY KEY,
name character varying(80) NOT NULL UNIQUE
);
CREATE TABLE auth_user_groups (
id integer NOT NULL PRIMARY KEY,
user_id integer REFERENCES auth_user(id) NOT NULL,
group_id integer REFERENCES auth_group(id) NOT NULL,
CONSTRAINT user_groups UNIQUE(user_id, group_id)
);
INSERT INTO auth_user VALUES (1, 'user1');
INSERT INTO auth_user VALUES (2, 'user2');
INSERT INTO auth_group VALUES …Run Code Online (Sandbox Code Playgroud) 我有一个包含 col1、col2、col3 列的简单表格。都不可为空。
我想删除元组 (col1, col2) 有多个条目的所有行。背景:应添加 (col1, col2) 的唯一约束。
drop table mytable;
create table mytable (
col1 integer not null,
col2 integer not null,
col3 integer not null);
-- rows to delete
insert into mytable values (1, 1, 1);
insert into mytable values (1, 1, 2);
-- rows to keep
insert into mytable values (2, 2, 1);
insert into mytable values (2, 3, 2);
delete from mytable where
(col1, col2) in (
select col1, col2 from mytable
group by …Run Code Online (Sandbox Code Playgroud) 我有一个表my_tables,它在几个表中被引用为外键。
我想选择my_table其他表中未引用的所有行。
AFAIK,应该可以以通用方式(带有一些内省魔法)来做到这一点。
如何终止特定 PostgreSQL 用户的所有数据库活动?
我知道如何选择它们:SELECT * FROM pg_stat_activity WHERE usename='foo_user'?
我在这里找到了这个:/sf/answers/2472371891/
我所做的是首先检查正在运行的进程
Run Code Online (Sandbox Code Playgroud)SELECT * FROM pg_stat_activity WHERE state = 'active';找到您要终止的进程,然后键入:
Run Code Online (Sandbox Code Playgroud)SELECT pg_cancel_backend(<pid of the process>)如果无法杀死进程,请尝试:
Run Code Online (Sandbox Code Playgroud)SELECT pg_terminate_backend(<pid of the process>)
但如何将其应用于多个进程呢?
有时 CI 中的测试花费太长时间,系统应该被破坏。
到目前为止,我的 PostgreSQL 应用程序中的所有查询都很快。在过去的几天里,有时一个查询需要几个小时。索引是健康的,因为在 dump、restore、vacuum -z 之后,它仍然是一样的:查询需要几个小时。
EXPLAIN VERBOSE SELECT DISTINCT "modwork_beleg"."direction"
FROM "modwork_beleg"
LEFT OUTER JOIN "modwork_isu_isu_pkunde" ON ("modwork_beleg"."id" = "modwork_isu_isu_pkunde"."beleg_id")
LEFT OUTER JOIN "modwork_isu_isu_vknr" ON ("modwork_beleg"."id" = "modwork_isu_isu_vknr"."beleg_id")
LEFT OUTER JOIN "modwork_isu_isu_gpnr" ON ("modwork_beleg"."id" = "modwork_isu_isu_gpnr"."beleg_id")
WHERE ("modwork_beleg"."state" IN (E'neu', E'inarbeit', E'wiedervorlage')
AND (
"modwork_isu_isu_pkunde"."pkunde" = 90237758
OR
"modwork_isu_isu_vknr"."vknr" = 254400297729
OR
"modwork_isu_isu_gpnr"."gpnr" = 1001030921
));
Run Code Online (Sandbox Code Playgroud)
查询计划:
HashAggregate (cost=36409.29..36409.30 rows=1 width=3)
Output: modwork_beleg.direction
-> Merge Right Join (cost=28836.70..36409.29 rows=1 width=3)
Output: modwork_beleg.direction
Merge Cond: (modwork_isu_isu_vknr.beleg_id = modwork_beleg.id)
Filter: ((modwork_isu_isu_pkunde.pkunde …Run Code Online (Sandbox Code Playgroud) 我有一个包含三个整数列的表:
select max(col1), max(col2), max(col3) from mytable
Run Code Online (Sandbox Code Playgroud)
我想要三列的最大值。但这不起作用:
select max(max(col1), max(col2), max(col3)) from mytable
Run Code Online (Sandbox Code Playgroud)
如何完成这项工作?
我使用 PostgreSQL,但我希望这可以用标准 SQL 解决。
如何在 PostgreSQL 行中存储办公时间,以便我可以计算办公时间。
例子:
我想将这些数据按行存储,以便我们可以为其开发接口。
然后需要一种使用行/规则来计算具体开放时间的方法。
在这种情况下,不同的时区并不重要。
我使用 PostgreSQL 12.6 版。但如果需要,我可以升级到更新的版本。
我有一个应用程序,用户可以在其中做出决定:
我开始使用可以为空的布尔列。
但是事情变得相当复杂,因为我的框架 (django) 没有提供用于开箱即用的搜索表单编码的输入字段。
在搜索表单中,我需要四种状态:
相关问题:https : //stackoverflow.com/questions/38307866/search-form-for-nullbooleanfield
一个旧的经验法则再次出现在我的脑海中:
避免可为空的数据库列。
我想将数据类型从可为空的布尔字段更改为不同的类型。
可以具有三种状态的列的哪种数据类型:是、不是、未知?
我使用 Postgres 9,但 AFAIK 这对于这个问题应该无关紧要。
关于 SQL 的一般问题:
如果两个用户执行同一个sql语句,有没有可能user1和user2得到不同的结果?
想象一下 user1 比 user2 拥有更多的权限。
换句话说:user1 有可能收到 100 行,而 user2 只收到 80 行吗?
我的问题是关于 SQL 标准。
但是可以在评论中随意谈论特定数据库系统的实现。
postgresql ×9
join ×2
datatypes ×1
date-math ×1
datetime ×1
foreign-key ×1
locking ×1
many-to-many ×1
max ×1
metadata ×1
null ×1
performance ×1
permissions ×1
sql-standard ×1
terminology ×1