当前位置:网站首页>如何修改严格模式让MySQL5.7插入用户表的方式新建用户成功?delete和drop的不同

如何修改严格模式让MySQL5.7插入用户表的方式新建用户成功?delete和drop的不同

2022-08-11 05:21:00 朵拉爱学习

一,如何修改严格模式让MySQL5.7插入用户表的方式新建用户成功?

mysql> set @@explicit_defaults_for_timestamp = 1;

1.此时如果 TIMESTAMP 列没有显示的指定 not null 属性,那么默认的该列可以为 null ,此时向该列中插入 null 值时,会直接记录 null 。

2.如果 TIMESTAMP 列被加上了 not null 属性,并且没有指定默认值。这时如果向表中插入记录,但是没有给该 TIMESTAMP 列指定值的时候,如果 strict sql_mode 被指定了,那么会直接报错。如果 strict sql_mode 没有被指定,那么会向该列中插入 ’0000-00-00 00:00:00’ 并且产生一个 warning 。

去掉sql_mode中的 NO_ZERO_IN_DATE,NO_ZERO_DATE 。

SQL语句:mysql> set @@sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;

这里也可修改 MySQL 配置文件来去除规则,没有配置文件在 /etc/mysql 下创建 my.cnf 配置文件sudo vi /etc/mysql/my.cnf

在 [mysqld] 区域添加:sql_mode=“ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

如:[mysqld]

sql_mode=“ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

最后重启服务器,即可正常执行创建语句。

二,N叉树的N是否可以人为修改?

1, 通过改变 key 值来调整
N 叉树中非叶子节点存放的是索引信息,索引包含 Key 和 Point 指针。Point 指针固定为 6 个字节,假如 Key 为 10 个字节,那么单个索引就是 16 个字节。如果 B + 树中页大小为 16 K,那么一个页就可以存储 1024 个索引,此时 N 就等于 1024。我们通过改变 Key 的大小,就可以改变 N 的值。
2, 改变页的大小
页越大,一页存放的索引就越多,N 就越大。数据页调整后,如果数据页太小层数会太深,数据页太大,加载到内存的时间和单个数据页查询时间会提高,需要达到平衡才行。

三,16kb page目前而言是否可以修改?

页是InnoDB存储引擎磁盘管理的最小单位,每个页默认16KB;InnoDB存储引擎从1.2.x版本碍事,可以通过参数innodb_page_size将页的大小设置为4K、8K、16K。若设置完成,则所有表中页的大小都为innodb_page_size,不可以再次对其进行修改,除非通过mysqldump导入和导出操作来产生新的库。
innodb_page_size只能在初始化MySQL实例之前配置,不能在之后修改。如果没有指定值,则使用默认页面大小初始化实例。

四,delete和drop的不同?

删除不同
1、drop:drop主要用于删除数据结构,包括内部的数据内容。
2、delete:delete主要用于删除数据内容,不删除数据结构。
操作不同
1、drop:drop操作不放到rollbacksegment中,不能回滚,操作不触发trigger。
2、delete:delete操作会放到rollbacksegement中,在事务提交后生效,执行时触发相应的trigger。
操作对象不同
1、drop:drop的操作对象可以是数据库,也可以是数据库中的数据表。
2、delete:delete的操作对象只能是数据库中的数据表。

原网站

版权声明
本文为[朵拉爱学习]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_31088019/article/details/125763338