我正在使用MySQL v。 5.0.77 ,我想知道是否可以计算数据库中的表数。我已经做了很多研究,但我找不到一种不折旧的方法。
对于每个注册的用户,我都在数据库中为他们生成了一个表。而现在我正试图获得这些表的实时计数,如果这是有道理的。这是存储用户信息的合理方式吗?我无法以编程方式在我的服务器上创建整个数据库。
答案 0 :(得分:12)
您可以查询information_schema.tables
SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_SCHEMA='$database_name';
答案 1 :(得分:2)
你可以这样做:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='YOUR_DB_NAME_HERE'
答案 2 :(得分:2)
对于每个注册的用户,我都在数据库中为他们生成了一个表。而现在我正试图获得这些表的实时计数,如果这是有道理的。这是存储用户信息的合理方式吗?
如果您为每个用户创建一个单独的表,那么可能不是。有更好的方法来存储数据和关系,这可能会更复杂,但稍后会提供更多的灵活性,能力和可扩展性。
我认为您可能正在尝试在编程中重现数据库的功能,例如获取用户列表需要您在每个用户表上运行查询。
我建议您查看database design和database normalization(尝试关注如何最好地存储数据的概念,而不会陷入具体细节)。
答案 3 :(得分:1)
我不知道这是否比ajreal的答案慢,但我一直在使用:
$sql = "SHOW TABLES";
$res = mysql_query($sql);
$num_tables = mysql_num_rows($res);
答案 4 :(得分:0)
打开终端,然后输入use myDB
,然后输入show tables;
它将为总表数47 rows in set (0.00 sec)
或输入以下查询
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='myDB'