【问题标题】:How to change mediumtext column to varchar in MySQL? (table altering)如何在 MySQL 中将 mediumtext 列更改为 varchar? (换表)
【发布时间】:2021-11-13 03:50:18
【问题描述】:

我想将表格的列格式从 mediumtext 转换为 varchar,因为我想将其定义为唯一值列。 如果我尝试这样做,我会从管理员和 phpmyadmin 那里得到一个积极的反馈,但它会显示注释/警告“Note 1246 Converting column 'URL' from VARCHAR to TEXT”并且没有任何反应。

列的当前值遵守 VARCHAR 的长度限制。是否有可能强制进行这种更改?

【问题讨论】:

  • 正如注释所说的“从 VARCHAR 到 TEXT”,似乎 adminer/phpmyadmin 试图以错误的方式更改列类型。您能否提供更多关于您如何与 adminer/phpmyadmin 交互的信息?
  • 如果要使用VARCHAR,则需要指定最大长度。
  • @user14967413 我通过 UI 以及以下方法进行了尝试:ALTER TABLE tablename MODIFY COLUMN URL varchar(65535);
  • 运行SELECT MAX(LENGTH(url)) FROM tbl;你会得到什么?
  • @RickJames 158

标签: mysql database sqldatatypes alter-table


【解决方案1】:

整个索引的限制是 3072 字节。你确定它们会比这更短吗?如果没有,有一些笨拙的方法可以通过包含md5(或其他一些摘要)的额外列来实现。

错误消息可能与VARCHAR 相关,而不是UNIQUE。请注意,CHARACTER SET 会影响限制。

SELECT MAX(LENGTH(url)) FROM tbl;给你的只有158。建议你把栏改成VARCHAR(191)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2023-03-12
    • 2011-06-12
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多