gpt4 book ai didi

mysql - 当插入超出范围的十进制值时,MySQL 插入一个 99999 值而不是抛出超出范围的错误

转载 作者:行者123 更新时间:2023-11-29 02:38:48 24 4
gpt4 key购买 nike

我有一个测试模式如下:

CREATE DATABASE TEST;

USE TEST;

CREATE TABLE TEST(DEC_VALUE DECIMAL(5,2));

INSERT INTO TEST VALUES(111111);

但问题是 MySQL 没有抛出错误,而是正常插入,但值是 99999,99。

我知道错误的插入是因为数据大于数据类型,但我需要更改什么才能让 MySQL 抛出 Error 1264: Out of range 而不是错误的插入?

谢谢!

最佳答案

您需要启用 STRICT_TRANS_TABLES SQL模式。

参见:Setting the SQL Mode

To set the SQL mode at server startup, use the --sql-mode="modes" option on the command line, or sql-mode="modes" in an option file such as my.cnf (Unix operating systems) or my.ini (Windows). modes is a list of different modes separated by commas. To clear the SQL mode explicitly, set it to an empty string using --sql-mode="" on the command line, or sql-mode="" in an option file.

我会在 my.cnf(或 Windows 上的 my.ini)中更改它。只需附加 ,STRICT_TRANS_TABLES

mode="...,STRICT_TRANS_TABLES"

关于mysql - 当插入超出范围的十进制值时,MySQL 插入一个 99999 值而不是抛出超出范围的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57760771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com