问题描述
create table if not exists (
300+ columns
);
Insert into
select
300 columns
from
a inner join b
on a.key=b.key
;
Invalid operation: INSERT has more expressions than target columns;
由于列太多,很难找到哪一列未匹配。
有什么方法可以计算 SELECT 语句中的列数?
我知道我们可以计算信息模式中的列数,但我想计算 select 语句中的列/项目数,而不是现有的 sql 表。
解决方法
好吧,您可以使用 information_schema
表。例如,您可以使用:
create table tempt as
select 300 columns
from a inner join
b
on a.key = b.key;
(我会添加类似 limit 1
的内容,因为您可能不关心数据。)
然后您可以查看 information_schema.columns
以按顺序获取列列表及其类型。您甚至可以使用 SQL 语句将列与原始表进行比较。