可做笔记的阅读网站,软件开发培训机构排名,网站做友链有行业要求吗,旅游网站建设网目录 设置
一、插入字符串类型 建表
总结
1、单插 NULL 到 NOT NULL 列#xff08;无默认值#xff09;
#xff08;1#xff09;严格模式
#xff08;2#xff09;宽松模式
2、单插 NULL 到 NOT NULL 列#xff08;有默认值#xff09;
#xff08;1#xff…
目录 设置
一、插入字符串类型 建表
总结
1、单插 NULL 到 NOT NULL 列无默认值
1严格模式
2宽松模式
2、单插 NULL 到 NOT NULL 列有默认值
1严格模式
2宽松模式
3、批量插入 NULL 到 NOT NULL 列
1严格模式
2宽松模式
二、插入数字类型
三、更新 设置 我这里的数据库实例的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 下面通过修改临时会话的sql mode再打开一个script会话设置该tab的session为宽松模式: -- 只保留最基本模式宽松但仍防止引擎替代
SET SESSION sql_mode NO_ENGINE_SUBSTITUTION;来对比下宽松模式和严格模式的区别。 一、插入字符串类型 建表
CREATE TABLE t_user_demo (id varchar(36) NOT NULL,user_id varchar(36) NOT NULL,user_name varchar(36) NOT NULL,PRIMARY KEY (id)
)
CREATE TABLE t_user_demo_1 (id varchar(36) NOT NULL,user_id varchar(36) NOT NULL,user_name varchar(36) NOT null default abc,PRIMARY KEY (id)
)
总结 case 严格模式 宽松模式 单插 NULL 到 NOT NULL 列该列无默认值 报错 报错 NOT NULL该列无默认值单插不指定该列 报错 报错 单插 NULL 到 NOT NULL 列该列有default值 报错 报错 NOT NULL该列有默认值单插不指定该列 成功使用默认值 成功使用默认值 批量插入 NULL 到 NOT NULL 列该列无默认值 报错 成功转成空字符串 批量插入 NOT NULL 列该列无默认值不指定列 报错 成功转成空字符串 批量插 NULL 到 NOT NULL 列该列有default值 报错 成功转成空字符串 批量插入 不指定列NOT NULL该列有默认值 成功使用默认值 成功使用默认值
以下是验证的步骤
1、单插 NULL 到 NOT NULL 列无默认值
1严格模式 报错插入不成功 不显示插入也报错 2宽松模式
显示插入Null同样报错插入不成功 不显示插入会自动转成空字符串插入成功 2、单插 NULL 到 NOT NULL 列有默认值
1严格模式 报错插入不成功 不显示指定字段则可以成功 2宽松模式
显示插入Null报错插入不成功 不显示指定字段则可以成功 3、批量插入 NULL 到 NOT NULL 列
1严格模式
显示插入为Null报错插入不成功 对于有default值的字段不指定则可以插入成功 2宽松模式 不管字段是否有默认值不管是否显示插入Null都成功插入。可见宽松模式下单插显示指定Null会失败只有不指定该字段可以生成默认值而批量插入不管该字段是否有默认值不管有没有显示插入Null都可以自动转成默认值插入成功。 chatGPT说的转化并不准确实际上是批插才有转化。 INSERT INTO t_user_demo_1 (id,user_id,user_name) VALUES
(66,null, null),(88,null, null);二、插入数字类型
三、更新