MySQL 使用 INFORMATION_SCHEMA 更新列 - 这可能吗?

MySQL Update of Columns using INFORMATION_SCHEMA - is this possible?

我知道我可以使用 INFORMATION_SCHEMA 查看属性并做一些令人惊奇的事情来学习我的 db/table/field 结构。

但是,是否可以更新 COLUMNS table 中的字段值,从而更新实际列?例如,将 nullable 从 NO 设置为 YES。

如果这不是直接可行的,我意识到我可以使用查询来 CONCAT 一个 ALTER 字符串,然后 运行 这些字符串。但是,在那种情况下,有没有一种方法可以代替 运行 一个 eval() 命令来在一次操作中执行此操作?谢谢。

  1. 学习 INFORMATION_SCHEMA:我将从阅读文档开始 - INFORMATION_SCHEMA Tables。然后我会尝试编辑对象并查看这些 tables.
  2. 中发生了什么
  3. INFORMATION_SCHEMA table是系统table,不能修改。 ALTER TABLE 是更改 table.
  4. 的唯一方法

这是一个美好的想法,但不幸的是,它行不通。

INFORMATION_SCHEMA 中的表格是 read-only 视图 ,实际上并不是表格。所以没有任何文件或目录与它们相关联。您只能读取它们的内容,不能对它们进行 运行 INSERTUPDATEDELETE 操作。

请参阅 https://dev.mysql.com/doc/refman/5.7/en/information-schema-introduction.html#information-schema-usage-notes 了解内情。

仅供参考,如果您想要更有针对性地回答数据库问题,可以使用 Database Administrators Stack Exchange 网站。