1.严格模式,导致mysql5.7 插入用户表的方式新建用户失败,那么如何修改严格模式,让他插入成功?
答:通过 mysql> select @@sql_mode; 语句可以查询数据库的模式
查询出 sql_mode ,发现其中有 NO_ZERO_IN_DATE,NO_ZERO_DATE。sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
即为不允许 TIMESTAMP 值为 0000-00-00 00:00:00。
我们再通过 SQL 语句mysql> show variables;
查询出 MySQL5.7 的 explicit_defaults_for_timestamp 默认值为 OFF ,这与 sql_mode 的 NO_ZERO_DATE 也是相冲突的。explicit_defaults_for_timestamp = OFF
解决方案 mysql> set @@explicit_defaults_for_timestamp = 1;
看了一些网上的解答 不知道对不对 自己认为 应该可以通过语句关闭严格模式 应该就能正常插入 , 或者严格按照 严格模式要求的插入方式插入应该也能解决吧。。。
2.mysql 中delete和trncate区别
delete from语句可以使用where对要删除的记录进行选择,delete语句更灵活。
truncate table将删除表中的所有记录
删除表中的部分记录,只能使用delete语句
总结:
delete和truncate table的最大区别是delete可以通过WHERE语句选择要删除的记录。但执行得速度不快。而且还可以返回被删除的记录数。而truncate table无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。
3.N叉树的N是否可以人为修改
1, 通过改变key值来调整
N叉树中非叶子节点存放的是索引信息,索引包含Key和Point指针。Point指针固定为6个字节,假如Key为10个字节,那么单个索引就是16个字节。如果B+树中页大小为16K,那么一个页就可以存储1024个索引,此时N就等于1024。我们通过改变Key的大小,就可以改变N的值
2, 改变页的大小
页越大,一页存放的索引就越多,N就越大。