sql - 将表中列的数据类型从 TEXT 更改为 LVARCHAR(10000)
问题描述
我想将表TEXT
中列的数据类型更改/修改为. 我通过执行以下命令来做到这一点:batch_calc_query
d_etl_queries
LVARCHAR(10000)
ALTER TABLE d_etl_queries MODIFY (batch_calc_query LVARCHAR(10000));
但是,它给了我以下错误:
9633: ALTER TABLE can not modify column (batch_calc_query) type. Need a cast from the current type
有什么办法可以避免这个错误?
解决方案
运行这两个语句:
CREATE TABLE blob_to_lvarchar(s SERIAL NOT NULL PRIMARY KEY, b TEXT IN TABLE);
ALTER TABLE blob_to_lvarchar MODIFY b LVARCHAR(10000);
生成通告的错误。没有一种简单的方法可以解决这个问题——您必须向系统添加一个强制转换 (CREATE CAST),并使用适当的 C 函数进行备份以进行更改。
您将需要卸载表,删除它,使用正确的列类型重新创建它,然后重新加载表。
推荐阅读
- python - 使用 celery 执行动态任务
- java - 为什么我必须第二次在 while 中写入 line = reader.readLine() ?我以为我已经在上面定义了
- python-3.x - 如何转储 http“内容类型:应用程序/json;” 在 FastAPI 中
- kubernetes - Kubernetes/Airflow Celery worker 任务因 SigKill 9 错误而失败,但没有解释(猜测 OOME?)
- cypress - 赛普拉斯 5.0 - 无法找到已安装的浏览器
- r - 在列表中查找补数
- python - 使用 nltk 从文本文档中构建带有标签的自定义语料库
- c# - c#控制台应用程序游戏中的两个光标
- reactjs - React 中可重用的 MaterialUi 对话框
- java - Android,我可以在使用 recyclerview 时让列表数据保持不变