gpt4 book ai didi

MySQL条件插入导致错误代码1364 : "Field doesn' t have a default value"

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

我已使用以下语句向表quote_entry(已经有几列)添加了一个新列:

ALTER TABLE quote_entry
ADD overtime_id INTEGER;

现在,我尝试将数据插入到列中,如下所示:

INSERT INTO quote_entry (overtime_id)
select 1
FROM quote_entry
WHERE overtime=0;

但这给了我一条错误消息:

Error: Field 'quote_id' doesn't have a default value
SQLState: HY000
ErrorCode: 1364

我不明白,为什么当我尝试修改 overtime_id 列中的数据时会收到此错误?

最佳答案

INSERT 语句用于向表中添加新行。看起来您想要做的是将值添加到现有行中刚刚创建的列中。您可以使用 an UPDATE statement 来执行此操作而不是 INSERT 语句:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]

没有不必要的选项的简单版本如下所示:

UPDATE table_reference SET col_name=expr WHERE where_condition;

在这种情况下,expr 将是一个常量表达式 – 1 – 如果您想在所有行中保留列 NULL条件不匹配。

关于MySQL条件插入导致错误代码1364 : "Field doesn' t have a default value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532888/

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