SET sql_mode='STRICT_TRANS_TABLES';
在上述语句中,`STRICT_TRANS_TABLES`就是一个SQLMode选项。这个选项强制MySQL在插入或更新表中的行时,必须符合表的定义,否则会返回错误。
SET sql_mode='ONLY_FULL_GROUP_BY';
这是另一个常用的SQLMode选项。它是为了避免非法的GROUP BY语句。如果启用了这个选项,那么在SELECT语句中使用GROUP BY时,必须将所有的非聚合字段都包含在GROUP BY语句中。否则,MySQL会返回错误。
SET sql_mode='TRADITIONAL';
这个选项强制MySQL遵循传统的SQL标准,包括检查外键、严格模式等。在这个模式下,如果插入或更新数据时发生了错误,则MySQL会返回错误信息,并停止执行语句。
MySQL的SQLMode可以通过多种方式进行设置,包括在my.cnf配置文件中进行全局设置,或在会话级别中进行设置。在实际应用中,应根据业务需求选择合适的SQLMode选项进行设置。