MySQL从SELECT创建临时表保留原始字段长度

标签 mysql select temporary-objects

考虑这个简单的例子:

INSERT INTO TemporaryTable
SELECT RealTable.name as name
FROM RealTable
LIMIT 1

我正在从 SELECT 创建一个临时表。

问题:临时表的字段大小设置为 SELECT 结果集每个字段的最大长度。 例如,如果结果集包含类似以下内容: name = "John Doe",则临时表中的 "name"字段将为 VARCHAR(8),因为即使 RealTable.name 是一个,“John Doe”的长度也是 8 varchar(255)

我希望 TempoarayTable.name 的长度与真实表中的名称相同。有没有办法自动完成?谢谢。

最佳答案

做一个

CREATE TEMPORARY TABLE tempTable
LIKE oldTable;

INSERT INTO tempTable
SELECT ... FROM ...

关于MySQL从SELECT创建临时表保留原始字段长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851016/

相关文章:

java - MySQL 语法错误 |您的 SQL 语法有错误;

php使用join从数据库中选择数据

c++ - 创建临时的 decltype

传递给构造函数的临时对象的 C++ 生命周期

c++ - 临时对象——它们是什么时候创建的,你如何在代码中识别它们?

php - 无法在 PHP 中上传和保存图像

php - MySQL 查询帮助

php - 计算整个类别的销售额

mysql - 以不同方式显示查询结果

sql - SELECT 语句中带有 if 比较的 TSQL CASE