• MYSQLcheck管理


    mysql这个东西对于管理员并不友好,看起来还没有成品。就拿亲儿子workbeanch来说吧,功能也不是很齐全,速度也一般般,否则sqlyog之类的早没有什么活路了。

    社区版的支持非常薄弱(商业版不太清楚)。所以建议有一定规模的团队可以自行开发这些工具(当然是空闲时间)。

    市面上几个主要的工具-mysql workbeach,sqlyog,navicat各有自己的缺陷,没有一个是很好用的。

    现在只能寄望于自己掌握更多一些的命令。

    由于某些原因,给字段设置了check,结果好几个工具无法在图形界面上看到check的内容,极度垃圾,虽然这是8.0.x新增的特性。

    但可以用命令查看,例如 SHOW CREATE TABLE xxxx;

    用命令吧!(以下内容来自于 MySQL8.0添加和删除check约束_to_create的博客-CSDN博客_mysql删除check约束)

    ----------------------------------------------------------------------------------

    a. 添加check

    ALTER TABLE `表名` ADD CONSTRAINT [约束名] CHECK(约束条件) [[NOT] ENFORCED];

    b.修改check

    ALTER TABLE `表名` ALTER CHECK 约束名 [NOT] ENFORCED;

    注:这个好像仅限于修改enforced属性,无法修改定义语句。

    c.删除check

    ALTER TABLE `表名` DROP CHECK 约束名;

    --------------------------------------------------------------------------------

    光有这三个还是不够,还必须知道哪些表有check(innodb),以及如何生成批量操作的sql:

    SELECT 
          /*
          concat('alter table ',t.TABLE_SCHEMA,
          '.',t.TABLE_NAME,' alter check ',t.CONSTRAINT_NAME, 
          '(`status_code` in (0,1,2))',' ENFORCED;') as a_sql,
          */
          CONCAT('alter table ',t.TABLE_SCHEMA,
          '.',t.TABLE_NAME,' drop check ',t.CONSTRAINT_NAME, ';') AS d_sql
           FROM TABLE_CONSTRAINTS t,
          CHECK_CONSTRAINTS c
           WHERE t.table_schema='ps' AND t.constraint_type='CHECK'
           AND c.CONSTRAINT_SCHEMA=t.TABLE_SCHEMA
           AND c.CONSTRAINT_NAME=t.CONSTRAINT_NAME ;     

    如果想直接通过alter check语法修改定义check语句,好像还是有问题。

    希望这个功能更加完善一些!

  • 相关阅读:
    包含深度学习常用框架的Docker环境
    Docker快速搭建neural style环境
    kaggle之Grupo Bimbo Inventory Demand
    kaggle之人脸特征识别
    kaggle之识别谷歌街景图片中的字母
    kaggle之数字序列预测
    kaggle之泰坦尼克的沉没
    kaggle之手写体识别
    Promise/Bluebird源码
    redis源码笔记(一) —— 从redis的启动到command的分发
  • 原文地址:https://www.cnblogs.com/lzfhope/p/16184850.html
Copyright © 2020-2023  润新知