• mysql问题汇总——持续更新


    1.this is incompatible with sql_mode=only_full_group_by

    set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

    2.表“TableDetails”中列“IsPrimaryKey”的值为 DBNull

    set global optimizer_switch='derived_merge=off';
    set optimizer_switch='derived_merge=off';
    如果执行到此处仍然无效,重启mysql再次执行即可,多次亲测有效

     3.navicat设置外键保存后消失

    设置数据库引擎为InnoDB
    

     4.MySQL8.0 Authentication method 'caching_sha2_password' not supported by any of the available plugins.

    修改默认的配置文件
    C:ProgramDataMySQLMySQL Server 8.0my.ini
    default_authentication_plugin=mysql_native_password
    修改密码并重启服务
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; #更新一下用户的密码 
    FLUSH PRIVILEGES; #刷新权限 

     5.变量赋值

    用户变量,在客户端链接到数据库实例整个过程中用户变量都是有效的。
    
    MySQL中用户变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。 
    
    第一种用法:set @num=1; 或set @num:=1; //这里要使用set语句创建并初始化变量,直接使用@num变量 
    
    第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……, 
    
    select语句一般用来输出用户变量,比如select @变量名,用于输出数据源不是表格的数据。
    
    注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”

     6.MYSQL5.7版本sql_mode=only_full_group_by问题

    1、关闭only_full_group_by 模式
    2、使用any_value(field)允许非分组字段出现
    select count(*) as num,any_value(a.name)
  • 相关阅读:
    第一次用NUnitAsp
    IT能够解决所有的商业问题吗?
    在这种东西里面,你会自在吗?
    看了段.net show之后的感想
    获取当前数据库中所有表的记录数
    对瀑布模型各阶段的解释
    Linux内核中的slab/slob/slub 在搞晕前先记下来
    分布式事务AT、TCC、Saga、XA 模式分析对比
    读懂Windows的“虚拟内存”为你量身定制
    示范NTFS 卷上的硬链接
  • 原文地址:https://www.cnblogs.com/ives/p/7989780.html
Copyright © 2020-2023  润新知