假设我有一个名为电话号码的属性,我想对该字段的条目强制执行某些有效性.我可以为此目的使用正则表达式,因为正则表达式在定义约束时非常灵活.
我可以想象按日期对表进行分区(特别是对日志进行分区)是一种广泛使用的方法,但是我找不到解决我问题的好方法。
我想按周创建一个表分区(记录数量大到每月都可以)。之所以要每周一次,是因为我需要算法的数据,该算法将在过程中查找日期。
我的问题是我希望它考虑周并使用“典型”方法来创建分区,所以我必须手动创建它。这样的事情。
CREATE TABLE measurement_y2013w01 (
CHECK ( logdate >= DATE '2013-01-07' AND logdate < DATE '2013-01-14' )
) INHERITS (measurement);
CREATE TABLE measurement_y2006w02 (
CHECK ( logdate >= DATE '2013-01-14' AND logdate < DATE '2013-01-21' )
) INHERITS (measurement);
...
Run Code Online (Sandbox Code Playgroud)
但是我希望它能自动完成。我不想为每个星期一个一个地创建分区。
我给命名的规则是yYYYYwWW来命名分区或开始datadYYYYMMDD。
我想在插入时使用类似以下的方法检查分区:
SELECT
nmsp_parent.nspname AS parent_schema,
parent.relname AS parent,
nmsp_child.nspname AS child,
child.relname AS child_schema
FROM pg_inherits
JOIN pg_class parent ON pg_inherits.inhparent = parent.oid
JOIN pg_class child ON pg_inherits.inhrelid = child.oid
JOIN pg_namespace nmsp_parent ON nmsp_parent.oid = …
Run Code Online (Sandbox Code Playgroud) enforcement ×1
mysql ×1
partitioning ×1
postgresql ×1
regex ×1
sql ×1
triggers ×1
typechecking ×1
week-number ×1