gpt4 book ai didi

doctrine-orm - 生成值(value)策略之间的差异

转载 作者:行者123 更新时间:2023-12-03 06:36:14 25 4
gpt4 key购买 nike

Doctrine docs他们提到 @GenerateValue 注释存在几种不同的策略:

  • 自动
  • 序列
  • 表格
  • 身份
  • UUID
  • 自定义

有人可以解释一下所有这些策略之间的差异吗?

最佳答案

检查latest doctrine documentation

这里是一个总结:可能的生成策略列表:

AUTO(默认):告诉 Doctrine 选择所使用的数据库平台首选的策略。对于 MySQL、SQLite 和 MsSQL,首选策略是 IDENTITY;对于 Oracle 和 PostgreSQL,首选策略是 SEQUENCE。该策略提供了完全的可移植性。

SEQUENCE:告诉 Doctrine 使用数据库序列来生成 ID。该策略目前不提供完全的可移植性。 Oracle、PostgreSql 和 SQL Anywhere 支持序列。

IDENTITY:告诉 Doctrine 使用数据库中的特殊标识列,在插入行时生成一个值。该策略目前不提供完全的可移植性,受以下平台支持:

  • MySQL/SQLite/SQL Anywhere => AUTO_INCRMENT
  • MSSQL => IDENTITY
  • PostgreSQL => 序列

TABLE:告诉 Doctrine 使用单独的表来生成 ID。该策略提供了完全的可移植性。 该策略尚未实现!

NONE: 告诉 Doctrine 标识符是由您的代码分配并生成的。分配必须在新实体传递给 EntityManager#persist 之前进行。 NONE 与完全省略 @GeneratedValue 相同。

自版本 2.3 起:

UUID:告诉 Doctrine 使用内置的通用唯一标识符生成器。该策略提供了完全的可移植性。

关于doctrine-orm - 生成值(value)策略之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14022374/

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