鄙人在开发网站的时候(刚开始用的集成环境XAMPP),无意中写错一个mysql命令:
insert into book(id,book_number,shop_name,create_username,update_username,remark) values('',13456789,'','','','');
本以为自己在命令中为主键的值添加了一个 '' 这样的空值会导致sql执行失败,但是惊奇地发现语句执行成功了!并且主键还是自增长的???
于是好奇宝宝又去特意找了单纯的MySQL环境又试了一遍,单纯的MySQL环境下,给id赋null 依旧是会自增长的,但是赋值 '' 会出错(id 是 int 类型的!!!)
想问下诸位大佬们,这是啥情况,有没有能哪位好心的大佬能告诉我这个原理是啥?
老婆要给我零花钱,允许我每天从存钱罐都能比昨天多拿一块钱。我第一天拿1块,第二天拿2块,后来到了100天,老婆发现你他娘的怎么拿这么多!这次只允许给我拿10块!
程序上来说,从1到100天就是ID 1到100,老婆让拿10元那也没办法只能拿,报错呗。
第101天,老婆说,给我拿''元!
填空值,填空值,你可以理解为没人管。 null吧你
看你原来表里字段的主键
建议楼主搜索下“ID生成策略”希望能帮到你
自增不能给NULL吧
主键默认约束应该是不允许为会的吧?
主键约束类型不能 设为null
我一直这么用'',相信事实。
insert into book(book_number,shop_name,create_username,update_username,remark) values(13456789,'','','','');
去了id
‘’在sql中是char类型