Sql 多通删除设置空

Sql 多通删除设置空,sql,symfony,doctrine-orm,Sql,Symfony,Doctrine Orm,我有两个表一个是产品,一个产品只能有一个品牌的ofc,但有多个产品可以有相同的品牌 当我删除品牌时,我尝试在产品的brand_id字段上设置onDelete=“Null”,但不起作用:S 这是产品 /** * @ORM\ManyToOne(targetEntity="App\Entity\Brand") * @ORM\JoinColumn(name="brand_id", referencedColumnName="id", onDelete="SET NULL")

我有两个表一个是产品,一个产品只能有一个品牌的ofc,但有多个产品可以有相同的品牌

当我删除品牌时,我尝试在产品的brand_id字段上设置onDelete=“Null”,但不起作用:S

这是产品

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Brand")
     * @ORM\JoinColumn(name="brand_id", referencedColumnName="id", onDelete="SET NULL")
     */
    private $brand;
这是布兰德

     * @ORM\OneToMany(targetEntity="App\Entity\Product", mappedBy="brand")
     * 
     */
    private $productTypes;
这是我从转储sql中得到的:

    CREATE UNIQUE INDEX UNIQ_29D6873E84D1E8E7 ON offer (product_cat_id);
     ALTER TABLE sym_order DROP FOREIGN KEY FK_B88A9287E7A1254A;
     ALTER TABLE sym_order ADD CONSTRAINT FK_B88A9287E7A1254A FOREIGN KEY (contact_id) REFERENCES sym_contact (id);
     ALTER TABLE sym_product_type DROP FOREIGN KEY FK_5052FAC44F5D008;
     ALTER TABLE sym_product_type DROP FOREIGN KEY FK_5052FAC44F5D008;
     ALTER TABLE sym_product_type ADD CONSTRAINT FK_5052FAC44F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id) ON DELETE SET NULL;
     DROP INDEX uniq_5052fac44f5d008 ON sym_product_type;
     CREATE INDEX IDX_5052FAC44F5D008 ON sym_product_type (brand_id);
     ALTER TABLE sym_product_type ADD CONSTRAINT FK_5052FAC44F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id);
     ALTER TABLE sym_stock DROP FOREIGN KEY FK_695577F14959723;
     ALTER TABLE sym_stock CHANGE status status TINYINT(1) NOT NULL;
     ALTER TABLE sym_stock ADD CONSTRAINT FK_695577F14959723 FOREIGN KEY (product_type_id) REFERENCES sym_product_type (id) ON DELETE SET NULL;
还要注意,当我尝试更新时,我有一个错误--force,但我想它仍然执行其余的命令,对吗


谢谢你的帮助;)

如果执行时发生错误

php bin/console doctrine:schema:update --force
上次成功执行命令时停止执行。这可能是您的问题,因为注释似乎定义正确

您可以通过以下方式检查未执行的命令:

php bin/console doctrine:schema:update --dump-sql

如果每个SQL命令都正确执行,此命令将通知您您的架构是最新的。

我认为任何
JoinColumn
的默认值都是
nullable=false
,因此要将其设置为null(onDelete或其他),它应该是可以为null的。除此之外,您肯定会收到一条错误消息。你为什么不在你的问题上加上这个呢?谢谢你的回答,就是这个。由于UNIQ键,我在DB中有重复项,我将这些表的关系修改为manytone,然后我做了一个更新--force,它解决了这个问题