sql insert,内部连接试图插入到错误的列中

4sup72z8  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(315)

我有一个现有的产品表,我正在尝试将其他表中的新属性插入到我的主产品表中。
我的问题是:

INSERT INTO company_attributes (amp)
    SELECT company_attr_amperage.amp
        FROM company_attr_amperage
        INNER JOIN company_attributes
        ON company_attr_amperage.product_id = company_attributes.product_id;

我得到的错误是:字段“product\u id”没有默认值。
我不是要插入到product\u id列,而是要插入到amp列(如查询的第1行所指定)
amp列存在于company\u attributes表中,但是现在,每个值都是null
谢谢

jmo0nnb3

jmo0nnb31#

您可能只想更新现有行中的值。如果是:

UPDATE company_attributes ca JOIN
       company_attr_amperage caa
       ON caa.product_id = ca.product_id
    SET ca.amp = caa.amp;
tf7tbtn2

tf7tbtn22#

INSERT 的工作是将新行放入表中(在您的情况下) company_attributes . 这些新行必须有效。您的表定义说,对于名为 product_id 在那张table上。所以,当你不提供你的数据库时,mysql不知道该把什么放进这个列中 INSERT 操作。
因此,在插入行时,必须为该列提供一个值。
如果不为列创建行,就无法将值放入列中,或者 UPDATE 删除现有行。

相关问题