如何在具有symfony主键的表中插入值

Posted

技术标签:

【中文标题】如何在具有symfony主键的表中插入值【英文标题】:How to insert value in the table having it primary key in symfony 【发布时间】:2021-05-28 07:54:21 【问题描述】:

我想在表中插入一个已经定义了 id 的值,该值在教义 symfony 中具有自动递增列 id(PK)。

【问题讨论】:

您好,请在发布问题之前阅读此内容***.com/help/how-to-ask 您的问题不符合 *** 标准,因为它缺乏细节且过于抽象。 【参考方案1】:

您可以临时更改 ID 生成器以存储给定的主 ID,例如:

use App\Entity\YourEntity;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Id\AssignedGenerator;
use Doctrine\ORM\Mapping\ClassMetadata;

$entity = new YourEntity();
$entity->setId(101);
$entity->setSomething('foo');

$entityManager->persist($entity);

// change the ID generator temporarily before flushing
$metadata = $entityManager->getClassMetaData(YourEntity::class);
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
$metadata->setIdGenerator(new AssignedGenerator());

$entityManager->flush();

【讨论】:

【参考方案2】:

注意:通常您不应更新数据库中现有行的 id。 但是.. 假设您的实体看起来有字段:IDnameValue

$car = $carsRepository->find(10); // select a car which the id is 10
$car->setId(1025); // note that : by default your entity DOES NOT have a built method setID() so you have to write it.
$car->setNameValue("Opel");
$manager->flush();

【讨论】:

以上是关于如何在具有symfony主键的表中插入值的主要内容,如果未能解决你的问题,请参考以下文章

具有多列主键的 Laravel 模型

Mysql - 将值插入具有未知主键的多个表中

允许从重复记录中的一条记录到具有主键的表中

如何将数据插入具有自动递增主键的 MySQL?

如何使用 SQL sum 函数在不同的 MySQL 表中添加具有相应主键的值?

如何在 SQL 服务器中将数据插入到两个不同的表中,同时在 SQL 中具有 ORDER# 主键