首页 > 解决方案 > 当从 information_schema.columns 表中长时间返回“mediumtext”时,如何判断列是文本还是长列?

问题描述

我正在阅读 MySql 的 information_schema 表,以了解我正在使用的模式,该模式具有 long 作为数据类型的表。

如在

创建表 foo ( col1 varchar(40), col2 long, col3 varchar(256) );

如果我从该表上的 information_schema.columns 中进行选择,则 data_type 将返回为“mediumtext”。

如何区分长字段和文本字段?

示例 sql 如下所示:

drop table if exists foo;

create table foo (
  col1 varchar(40),
  col2 long,
  col3 varchar(256),
  col4 mediumtext
);

insert into foo values ("This is col 1", 12345, 'This is col 3', 'This is col4');

select * from foo;

select * from information_schema.columns where table_name = 'foo';

标签: mysql

解决方案


如果您将 col2 定义为 longtext,那么当您查询 information_schema.columns 时,它就会出现。long 不是 mysql 中定义的数据类型,而是“为了方便使用为其他供应商的 SQL 实现编写的代码” https://dev.mysql.com/doc/refman/8.0/en/other-vendor-data-types。 html它映射为 mediumtext。


推荐阅读