gpt4 book ai didi

MySQL 选择表是否存在

转载 作者:可可西里 更新时间:2023-11-01 08:49:16 25 4
gpt4 key购买 nike

我需要在表上运行计数查询,但前提是该表存在,

SELECT 
CASE WHEN (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DATABASENAME' AND TABLE_NAME = 'testtable') < 1 THEN '0'
ELSE (SELECT COUNT(*) FROM testtable) END;

如果表不存在,上面的查询应该返回 0,但如果存在,它应该得到计数。

这会返回一个错误,指出“testtable”不存在,我们知道它不存在,因为 information_schema 计数返回 0。

这在 MySQL 中可行吗?

最佳答案

你可以试试这个:

       SET @val := CASE (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DATABASENAME' AND TABLE_NAME = 'testtable')
WHEN 0 THEN 0
ELSE (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DATABASENAME' AND TABLE_NAME = 'testtable')

END;
SELECT @val;

返回0,如果不存在该表,如果存在该表,则返回计数,将其带入函数中可能会更好。

关于MySQL 选择表是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18738909/

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