我已经仔细检查了我的模式,它是正确的......事实上 Doctrine 也构建过它一次......现在它用一些 FK 关系困扰着我...... 我也检查了数据类型。都是int(4)或者int(2)
这里有 2 个问题: 1. 表可以拥有的关系(依赖关系/FK)数量是否有上限? 我的表中最多有 7 个 FK 2. 引用父表(PK)的表数量是否有上限? 我在 20 个表中最多有 30 个字段引用选项表中的单个 ID 列 3. 是否需要CASCASE 行为的定义? 我没用过!
在这种情况下,没有关系生活会更好吗?
错误是:
SQLSTATE[HY000]: General error: 1005 Can't create table 'sokidb.#sql-268_1d' (errno: 121). Failing Query: "ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)". Failing Query: ALTER TABLE Acc_Gl_Accounts ADD CONSTRAINT Acc_Gl_Accounts_society_id_Soc_Societies_id FOREIGN KEY (society_id) REFERENCES Soc_Societies(id)
我也直接在 MySQL 中触发查询,它会导致相同的错误。
最佳答案
各位,在过去的几天里,我意识到 Doctrine 可能没有已知的问题。
我的错误是我在一个表“unsigned:true”中为我的 key 定义了一个选项,并且没有为 FK 定义重复相同的选项:( 都是我的错,但解决方案是仔细检查您的数据类型。
调试 MySQL 相关错误的最佳方法是检查生成的 SQL 脚本。 您可以轻松发现列定义中的差异。
感谢约翰的关注。
关于mysql - 通过 Doctrine Build Task 添加 FK 关系的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3082129/