如何使值引用另一个表的大小?

时间:2015-03-11 14:00:33

标签: mysql sql

我想在表引用中创建另一个表的大小。

所以,如果我有一个表用户:

+----+-------+
| id | name  |
+----+-------+
| 1  | Alice |
| 2  | Bob   |
+----+-------+

和表格统计:

+----+-----------------+-------+
| id | statistic       | value |
+----+-----------------+-------+
| 1  | number_of_users | 2     |
+----+-----------------+-------+

如果我在某种程度上添加了用户统计信息 自动生成number_of_users统计信息 增加?也许通过将其作为数字的参考 用户表中的行或类似的行。

我的目标是做到这一点,所以我不必更改统计数据 每次添加用户时都会手动填写表格。

2 个答案:

答案 0 :(得分:0)

有两种方法:

  • 为每个表创建INSERT和DELETE中的触发器以在您的计数器表上写入
  • 尝试此查询:

    SELECT table_name, table_rows
    FROM information_schema.tables
    WHERE table_schema = 'YOUR_DB_NAME'
    

它为每个表返回所有行号。

答案 1 :(得分:0)

将你想要计算在哪里: ( SELECT COUNT(*) FROM Users ) 它将在查询运行时进行评估。例如:

SELECT ( SELECT COUNT(*) FROM Students ) AS NumStudents,
       ( SELECT COUNT(*) FROM Teachers ) AS NumTeachers;