gpt4 book ai didi

mysql - 是否有保留有关 MySQL 表的额外信息的标准?

转载 作者:行者123 更新时间:2023-11-29 02:28:08 26 4
gpt4 key购买 nike

我的任务涉及从一个不断更新的 MySQL 表中读取:

CREATE TABLE mailing (
addr VARCHAR(255) NOT NULL
);

(没有 date_created 字段或任何东西,有点武断,我知道,但这就是我得到的)

这个表应该包含数百万个电子邮件地址,并且每天都会添加更多。

我应该在一个单独的表中计算该表中所有域在过去 30 天的每日增长,我创建的表是:

CREATE TABLE domain_count (
domain VARCHAR(255) NOT NULL PRIMARY KEY,
total_count INT(11) NOT NULL DEFAULT 0,
count_1 INT(11) NOT NULL DEFAULT 0,
count_2 INT(11) NOT NULL DEFAULT 0,
...
count_30 INT(11) NOT NULL DEFAULT 0
);

如果说,第 1 天邮件表包含来自单个域的 10 个地址,而在第 2 天它包含 15 个地址,那么我希望 domain_count.count_1 = 10 和 domain_count.count_2 = 5

为此,我需要跟踪两件事:一是截至昨天邮寄表中的地址总数(因此对于第 2 天,我应该在某处存储“10”,对于第 3 天,我应该在某处存储“15”;这样我就可以从邮件表的第 11/16 列继续搜索)。另一个是最新的 count_# 值,因为我需要知道在第 2 天插入 count_2(并在第 31 天循环回到 count_1)。

我可以很容易地将这些值存储在一个单独的文件中,但是做这样的事情感觉真的很乱。是否有 MySQL 查询可以让我将这些值与表本身相关联?

最佳答案

你描述的没有标准,没有。

INFORMATION_SCHEMA SQL 标准的一部分。 TABLES表有一个列 TABLE_ROWS,但这只显示当前行数。

为了按照您的描述进行操作,我将基于 TABLES 表创建另一个常规表,添加一个 TIMESTAMP 列,并定期将 I_S 表中的行复制到我自己的表中。

CREATE TABLE mydatabase.TABLES like INFORMATION_SCHEMA.TABLES;

ALTER TABLE mydatabase.TABLES ADD COLUMN updated_at TIMESTAMP;

/* once per day do the following: */
INSERT INTO mydatabase.TABLES
SELECT *, NOW() FROM INFORMATION_SCHEMA.TABLES
WHERE (table_schema, table_name) = ('mydatabase', 'mytable');

关于mysql - 是否有保留有关 MySQL 表的额外信息的标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com