gpt4 book ai didi

mysql - 是否可以在 MySQL 中禁用没有默认值的字段的自动空值插入?

转载 作者:行者123 更新时间:2023-11-29 04:27:53 26 4
gpt4 key购买 nike

是否有任何配置设置可以阻止 MySQL 为没有默认值且未在插入语句中指定的字段插入空值? 我更希望它拒绝无效的插入语句。

示例 - 我在 MySQL 中有下表:

CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val1` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`val2` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

如果你运行这个插入语句:

INSERT INTO test (val2) VALUES('a');

你得到这样的回应:

Query OK, 1 row affected, 1 warning (0.00 sec)

显示警告的响应:

+---------+------+-------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------+
| Warning | 1364 | Field 'val1' doesn't have a default value |
+---------+------+-------------------------------------------+
1 row in set (0.00 sec)

SELECT * FROM test 的响应:

+----+------+------+
| id | val1 | val2 |
+----+------+------+
| 1 | | asdf |
+----+------+------+
1 row in set (0.00 sec)

最佳答案

您可以启用 'strict' mode ,这会导致 MySQL 无法执行任何不为无默认字段提供值的插入操作。

关于mysql - 是否可以在 MySQL 中禁用没有默认值的字段的自动空值插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826823/

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