MySQL 严格模式 sql_mode

「爱情、让人受尽委屈。」 2022-07-15 11:54 288阅读 0赞

虽然说我们尽量在写程序的时候控制插入到数据库的数据,而不要用数据库去判断数据的对错,但是有时候为了方便还是需要数据库自身的容错能力来帮助我们达到目的的。举例说明:

创建如下数据表

  1. CREATE TABLE `book` (
  2. `id` int(11) default NULL,
  3. `num` int(11) unsigned default NULL
  4. ) ENGINE=InnoDB DEFAULT CHARSET=gbk
  5. insert into bookvalues(1,0),(2,0)

执行update book set num=’abc’,竟然不报错,原因是没有启用严格模式。所以

先执行set sql_mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”,

然后执行update book set num=’abc’,数据库就报错了

如果想一劳永逸,那就直接把数据库配置文件my.ini中的相关参数设置为

# Set the SQL mode to strict
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

发表评论

表情:
评论列表 (有 0 条评论,288人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL中的严格模式

    很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式。 何为MySQL的严格模式,简单来说就是MySQL自身对数

    相关 严格模式

    什么是严格模式:   除了正常运行模式(混杂模式),ES5 添加了第二种运行模式:“严格模式”(strict mode)。   顾名思义,这种模式使得 Javascr

    相关 Hive严格模式

    严格模式 是什么:防止可能出现不好的结果 > 防止出现三种场景: > > 1. 分区表查询中没有写where分区过滤条件 > 2. orderby 中没有写lim