甘肃公司网站建设哪家好,网站建设论文linux,网页设计软件视频教程,高端渠道开发目录 设置 
一、插入字符串类型 建表 
总结 
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);二、插入数字类型 
三、更新