编写表与字段注释后数据无法保存怎么排查_权限设置与回滚处理

张开发
2026/4/12 23:52:28 15 分钟阅读

分享文章

编写表与字段注释后数据无法保存怎么排查_权限设置与回滚处理
MySQL表注释修改后不生效是因查询方式错误ALTER TABLE COMMENT已落盘应查information_schema.tables的table_comment字段而非DESCRIBEPostgreSQL需用obj_description(t::regclass,pg_class)查表注释。MySQL 表注释修改后不生效ALTER TABLE ... COMMENT 没报错但查不到不是没保存是注释写到了表结构元数据里但你查的方式不对。默认 show create table 会显示注释但 describe 或 show columns 不会。确认是否真没生效用 SELECT table_comment FROM information_schema.tables WHERE table_name your_table AND table_schema your_db;字段注释同理查 information_schema.columns 的 column_comment 字段别只看 DESC注意字符集如果数据库/表用的是 utf8mb4但客户端连接用 utf8实际是 utf8mb3中文注释可能被截断或乱码存入表现为“空注释”ALTER TABLE t COMMENT 测试 是 DDL执行成功即已落盘不存在“未保存”——只是你没查对地方PostgreSQL 中 COMMENT ON TABLE 执行成功却查不到注释PostgreSQL 注释存在 pg_description 系统表但必须指定正确的 objoid 和 classoid否则 obj_description() 返回空。查表注释正确姿势SELECT obj_description(your_table::regclass, pg_class); —— 必须用 ::regclass 转类型不能直接传字符串字段注释要连表名一起查SELECT col_description(your_table::regclass, 1);1 是字段序号或更稳妥地用 SELECT description FROM pg_description WHERE objoid your_table::regclass AND objsubid 2;2 是第 2 列权限限制普通用户只能看到自己有 USAGE 权限的 schema 下的对象注释跨 schema 时即使注释存在也返回 NULL事务内执行 COMMENT 后未 COMMIT其他会话不可见——这常被当成“没保存”执行注释语句时报错 Access denied; you need (at least one of) the SUPER privilege(s)不是所有 MySQL 版本都要求 SUPER但 5.7 默认开启 sql_require_primary_key 或启用严格模式时某些 DDL 会被误判为高危操作更常见的是账号权限不足。 Tellers AI Tellers是一款自动视频编辑工具可以将文本、文章或故事转换为视频。

更多文章