Sql 多通删除设置空
我有两个表一个是产品,一个产品只能有一个品牌的ofc,但有多个产品可以有相同的品牌 当我删除品牌时,我尝试在产品的brand_id字段上设置onDelete=“Null”,但不起作用:S 这是产品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")
/**
* @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,它解决了这个问题