gpt4 book ai didi

mysql - 错误代码: 1364 Field doesnt have a default value in MySQL

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

我有一个数据库,其中存在两个表campaign_detailsproduct_details

campaign_details

campaign_details_columns

产品详细信息

product_details_columns

campaign_details 中的pr_name 列引用了product_details 中的pr_name

由于 campaign_details 表规模庞大,我决定制作一个名为 campaign_info 的较小表,以提高数据访问速度。

campaign_info

campaign_info_columns

此处 cmp_name 对应于 campaign_details< 中的 cmp_name em>pr_id 对应于 中关联 pr_namepr_id产品详细信息

因此,现在我想从 campaign_details 中删除 cmp_namepr_name 列> 并添加新列cmp_info_id

new_campaign_details_columns

我正在使用此查询将值添加到 cmp_info_id

Insert into nredb.campaign_details(cmp_info_id) (Select ci.cmp_info_id from nredb.campaign_info ci, nredb.campaign_details cd,nredb.product_details pd 
where ci.cmp_name=cd.cmp_name and ci.pr_id in (select pd1.pr_id from nredb.product_details pd1,nredb.campaign_details cd1 where cd1.pr_name=pd1.pr_name));

但它给出了此错误错误代码:1364。字段“pr_name”没有默认值

对于查询可能出现的问题有什么帮助吗?

最佳答案

您正在尝试插入 campaign_details 表,但您没有在查询中为 pr_name 指定值,因为该值未被嵌套Select查询。

您有两个选择:

  1. 修改您的 Select 查询,以便它也返回 pr_name
  2. 为您的 campaign_details 表中的 pr_name 设置默认值,以便即使您未在 Insert< 中指定值,该表仍会填充一些内容 查询。

也有可能您根本不尝试向表中添加新行,而是尝试修改现有行的 cmp_info_id 字段。如果是这种情况,那么您不需要 Insert 查询,而是需要 Update:

UPDATE nredb.campaign_details SET cmp_info_id=(SELECT ...) WHERE <condition to select row to update>

关于mysql - 错误代码: 1364 Field doesnt have a default value in MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882755/

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