mysql - 在mysql中创建表时更改列数据类型
问题描述
我正在使用选择查询从现有表创建新表。现有表列具有数据类型 varchar(255),因此在新创建的表中,该列默认包含 varchar 数据类型。
现在如何将新表列更改为其他数据类型 TEXT。这是mysql查询。尝试了 cast() 和 convert() 但不适用于 TEXT 数据类型
CREATE TABLE topper AS
SELECT studentname as `Name`, rollno as `Roll_No`, description as `Information`
FROM student
我想要 TEXT 数据类型中的“信息”列。
谢谢你的帮助。
解决方案
TEXT
本质上是VARCHAR(...)
.
CREATE TABLE topper (
Information TEXT NOT NULL,
) AS
SELECT studentname as `Name`, rollno as `Roll_No`, description as `Information`
FROM student;
请注意,您可以在CREATE
. 处理将按名称匹配列,然后填写其余列。
或者...
拥有一张桌子后x VARCHAR(255) NOT NULL
,您可以将其更改为TEXT
via
ALTER TABLE t
MODIFY COLUMN x TEXT NOT NULL;
您可以从VARCHAR
toTEXT
或反之亦然;请注意,由于它们具有不同的“最大大小”,因此您可能会被截断。做SHOW WARNINGS
; 运行后ALTER
。
此外,请务必包含所有额外的子句(NULL、CHARSET 等)。
考虑这些和类似问题的另一种方法是,从逻辑上讲,数据被转储为字符串,然后插入。也就是说,将应用与字符串之间的任何转换。实际上,不需要 CAST/CONVERT,至少在 TEXT 和 VARCHAR 之间不需要。
推荐阅读
- svg - 为什么 viewBox 会影响我的非缩放笔画?
- lua - 在LUA(Corona SDK)中比较第一次点击的价值和第二次点击的价值
- vue.js - Vue
在孩子里面 组件不更新父组件 - azure - 替换 Azure 资源组中不同资源的一个标记
- javascript - 如何从 HTML 中的 md-switch 存储和修改 JS 变量?
- python - Selenium click() 函数(看似)随机不点击框[无错误][Python]
- linux - 如何知道使用 gdb 的程序中的库调用生成了哪些系统调用?
- go - 我在哪里将我自己的包的代码放在 Golang 中
- python - 调整单个子图宽度的简单方法?
- javascript - 错误:A
可能只有一个子元素。包含开关,之前使用此代码