gpt4 book ai didi

mysql - 将主键更改为自动递增

转载 作者:行者123 更新时间:2023-11-29 00:10:20 26 4
gpt4 key购买 nike

我在 Doctrine 2/Sf2 中更新了我的数据库架构,并向我的数据库添加了一些新表。一切顺利,但当我想创建应用程序的管理端时,我意识到我需要一些 ID 才能成为 AUTO_INCREMENT。

然后,我想更改我的模式。从此。

X\XBundle\Entity\Currency:
type: entity
table: currencies
repositoryClass: CurrencyRepository
id:
id:
type: integer
fields:
name:
type: string
length: 255
slug:
type: string
length: 64
manyToMany:
brokers:
targetEntity: X\XBundle\Entity\Broker
mappedBy: currencies

对此:

X\XBundle\Entity\Currency:
type: entity
table: currencies
repositoryClass: CurrencyRepository
id:
id:
type: integer
generator: { strategy: AUTO } # I changed on this row!
fields:
name:
type: string
length: 255
slug:
type: string
length: 64
manyToMany:
brokers:
targetEntity: X\XBundle\Entity\Broker
mappedBy: currencies

然后我尝试在 CLI 中运行 php app/console doctrine:schema:update --force 并收到此消息:

 SQLSTATE[HY000]: General error: 1833 Cannot change column 'id': used in a foreign key constraint 'FK_706E39538248176' of table 'forexcbc.broker_currencies'

我现在尝试了一切。我手动删除了外键并重新运行脚本,但没有用。我删除了两个表之间的关系,没有用。有趣的是,表格中还没有任何内容。

我的 Broker 架构如下所示(我不知道这是否有任何帮助)

X\XBundle\Entity\Broker:
type: entity
table: brokers
repositoryClass: BrokerRepository
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
name:
type: string
length: 255
slug:
type: string
length: 64
oneToMany:
accountTypes:
targetEntity: X\XBundle\Entity\AccountType
mappedBy: broker
cascade: ["persist"]
manyToMany:
currencies:
targetEntity: X\XBundle\Entity\Currency
inversedBy: brokers
joinTable:
name: broker_currencies
joinColumns:
broker_id:
referencedColumnName: id
inverseJoinColumns:
currency_id:
referencedColumnName: id

我的问题是,究竟如何才能将 ID 字段设置为在创建表后自动递增。同样,表格中还没有任何内容。

提前感谢您的帮助!

亚当

最佳答案

您可以转储要应用的 SQL,而不是将更新应用到数据库:

app/console doctrine:schema:update --dump-sql --complete

打开 mysql shell,选择您的数据库并首先禁用外键检查:

SET FOREIGN_KEY_CHECKS = 0;

然后在 shell 中执行生成的 SQL 查询。

当你完成后,关闭 shell,然后再次运行 doctrine:schema:update 命令,看看是否一切都成功了。

关于mysql - 将主键更改为自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25459439/

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