You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将INFORMATION_SCHEMA.TABLES中的表名存入@变量或另一表?

解决MySQL中捕获INFORMATION_SCHEMA表名并存储的问题

一、语法错误修复及单条表名存入变量

你之前的语句报错是因为子查询多了一层冗余括号,且若匹配到多条记录直接赋值会触发错误。如果目标表名唯一(比如smileys),可以用以下两种正确写法:

方式1:直接SELECT赋值

SELECT @name := TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'smileys' LIMIT 1;

添加LIMIT 1是为了避免匹配到多条记录时的报错,确保仅取一条结果赋值给变量。

方式2:用SET语句赋值

SET @name = (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'smileys' LIMIT 1);

二、多条表名存入变量

如果要把所有匹配%smi%的表名存入一个变量(以逗号分隔的字符串形式),可以使用GROUP_CONCAT:

SELECT @names := GROUP_CONCAT(DISTINCT TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%smi%';

DISTINCT用于去除重复的表名(比如你查询结果里重复的smiley_files)。

三、将表名存入另一张表

1. 先创建存储表(若不存在)

CREATE TABLE IF NOT EXISTS captured_tables (
    table_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (table_name)
);

设置主键可自动避免重复插入数据。

2. 插入表名数据

INSERT INTO captured_tables (table_name)
SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%smi%';

内容的提问来源于stack exchange,提问作者Rec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:32:40