如何验证MySQL中表的数据库名与源数据库的表名是否合规?

MySQL中,可以通过查询information_schema.TABLES表来检查数据库名和表名是否合法。以下是一个示例查询:,,“sql,SELECT TABLE_SCHEMA, TABLE_NAME,FROM information_schema.TABLES,WHERE TABLE_SCHEMA = '源数据库' AND TABLE_NAME = '表名';,“,,如果查询结果返回至少一行数据,那么数据库名和表名是合法的。

查询MySQL数据库中表名是否合法,可以通过编写SQL语句来实现,我们需要了解MySQL中的标识符命名规则:

mysql怎么查询表中的数据库名_源数据库的表名是否合法
(图片来源网络,侵删)

1、标识符可以由字母、数字、下划线组成。

2、标识符不能以数字开头。

3、标识符区分大小写。

4、标识符不能超过64个字符。

5、保留字不能用作标识符。

mysql怎么查询表中的数据库名_源数据库的表名是否合法
(图片来源网络,侵删)

下面是一个示例的SQL查询语句,用于检查指定数据库中的表名是否合法:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
AND (
    table_name REGEXP '^[azAZ_][azAZ09_]{0,63}$'
    OR table_name REGEXP '^[azAZ_][azAZ09_]*$'
)
AND table_name NOT IN (
    'information_schema', 'mysql', 'performance_schema', 'sys'
);

这个查询语句会返回所有合法的表名。your_database_name需要替换为你要查询的数据库名称。

我们来解释一下这个查询语句的各个部分:

SELECT table_name:选择要显示的列,这里是表名。

FROM information_schema.tables:从information_schema数据库的tables表中获取数据。information_schema是MySQL系统库,包含了关于数据库和表的信息。

mysql怎么查询表中的数据库名_源数据库的表名是否合法
(图片来源网络,侵删)

WHERE table_schema = 'your_database_name':筛选出指定数据库中的表。

AND (table_name REGEXP '^[azAZ_][azAZ09_]{0,63}$' OR table_name REGEXP '^[azAZ_][azAZ09_]*$'):使用正则表达式检查表名是否符合命名规则,第一个正则表达式匹配长度不超过64个字符的表名,第二个正则表达式匹配长度不限但不超过64个字符的表名。

AND table_name NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys'):排除系统保留的数据库名。

现在让我们回答两个与本文相关的问题:

问题1:如何查询MySQL数据库中的所有表名?

答案:可以使用以下SQL查询语句来获取所有表名:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'your_database_name';

问题2:如何查询MySQL数据库中是否存在非法表名?

答案:可以使用以下SQL查询语句来查找非法表名:

SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
AND NOT (
    table_name REGEXP '^[azAZ_][azAZ09_]{0,63}$'
    OR table_name REGEXP '^[azAZ_][azAZ09_]*$'
)
AND table_name NOT IN (
    'information_schema', 'mysql', 'performance_schema', 'sys'
);

这个查询语句会返回所有不合法的表名。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-08-09 02:25
下一篇 2024-08-09 02:29

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信