gpt4 book ai didi

php - 省略非默认字段时,在 MariaDb 上插入失败

转载 作者:行者123 更新时间:2023-11-29 11:00:57 25 4
gpt4 key购买 nike

表结构:

CREATE TABLE `setup_int` (
`key` VARCHAR(50) NOT NULL,
`val` INT(11) NOT NULL,
PRIMARY KEY (`key`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB

正如您所看到的,这些字段是NOT NULL - 字段并且没有默认值。

我们更新到 MariaDB 10.1.21,现在遇到以下问题:以下查询失败,没有任何错误消息!

INSERT INTO `setup_int` (`key`) VALUES ('test');

原因似乎是缺少默认值。

  • 如果我向表中添加默认值,则插入成功。
  • 如果我将NOT NULL更改为NULL,则插入成功。
  • 如果我在 MariaDB 10.1.20 上执行此操作,则插入成功。
  • 如果我对两个字段都进行插入,则插入成功。

这有效:

INSERT INTO `setup_int` (`key`,`val`) VALUES ('test',0);

问题是:我可以做什么(一些设置或其他)让 mariadb 10.1.21 像以前一样处理这种情况。我现在无法更改所有表,也无法立即降级。

主要问题是,虽然插入失败,但 PHP 执行的查询返回 true!

最佳答案

看这里:https://stackoverflow.com/a/2503938/1973205

然后你可以像这样设置变量:https://mariadb.com/kb/en/mariadb/sql-mode/

作为纯粹的逻辑事实,查询失败是正确的。

关于php - 省略非默认字段时,在 MariaDb 上插入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269774/

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