[英]“SQLSTATE[23000]: Integrity constraint violation” with valid constraint
我正在使用Symfony 2和Doctrine。
我有4个班级:国家,地区,县和地方。 区具有国家/地区的外键; 县有外国人区; 本地具有区的外键。
问题是,在插入县(使用数据固定装置)时,出现错误
SQLSTATE[23000]: Integrity constraint violation:
我转储了SQL以创建表和约束,并得到以下信息:
CREATE TABLE Country (id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
insertedAt DATETIME NOT NULL,
flag LONGTEXT DEFAULT NULL COMMENT '(DC2Type:object)',
PRIMARY KEY(id)) ENGINE = InnoDB;
CREATE TABLE County (id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
insertedAt DATETIME NOT NULL,
insertedBy INT NOT NULL,
idDistrict INT NOT NULL,
INDEX IDX_5F4EFA13438082DC (insertedBy),
INDEX IDX_5F4EFA1362627EDC (idDistrict),
PRIMARY KEY(id)) ENGINE = InnoDB;
CREATE TABLE District (id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
insertedAt DATETIME NOT NULL,
insertedBy INT NOT NULL,
idCountry INT NOT NULL,
INDEX IDX_C8B736D1438082DC (insertedBy),
INDEX IDX_C8B736D143CAA294 (idCountry),
PRIMARY KEY(id)) ENGINE = InnoDB;
CREATE TABLE LOCAL (id INT AUTO_INCREMENT NOT NULL,
name VARCHAR(255) NOT NULL,
insertedAt DATETIME NOT NULL,
insertedBy INT NOT NULL,
idCounty INT NOT NULL,
INDEX IDX_4A17A7EC438082DC (insertedBy),
INDEX IDX_4A17A7EC3BF357BF (idCounty),
PRIMARY KEY(id)) ENGINE = InnoDB;
ALTER TABLE County ADD CONSTRAINT FK_5F4EFA13438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);
ALTER TABLE County ADD CONSTRAINT FK_5F4EFA1362627EDC
FOREIGN KEY (idDistrict) REFERENCES District(id);
ALTER TABLE District ADD CONSTRAINT FK_C8B736D1438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);
ALTER TABLE District ADD CONSTRAINT FK_C8B736D143CAA294
FOREIGN KEY (idCountry) REFERENCES Country(id);
ALTER TABLE LOCAL ADD CONSTRAINT FK_4A17A7EC438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);
ALTER TABLE LOCAL ADD CONSTRAINT FK_4A17A7EC3BF357BF
FOREIGN KEY (idCounty) REFERENCES County(id);
问题不在于DataFixture本身,因为我尝试使用PhpMyAdmin插入县并得到相同的错误。
所有表都在InnoDB引擎中创建,我可以成功创建一个国家和地区。 该错误仅在县实体中发生。
谢谢
您的装置文件可能正在尝试为County
插入一行,没有对应的行与accountId或districtId相匹配。
ALTER TABLE县添加约束FK_5F4EFA13438082DC外键(插入)参考帐户(id);
此键强制您确保您输入到“ County
表中的account
ID在account
表中具有匹配的ID。
ALTER TABLE县添加约束FK_5F4EFA1362627EDC外键(idDistrict)参考District(id);
与accountId相同,但在district
表中没有匹配的ID。
因此,在插入县行之前,请仔细检查您的装置文件,并确保已插入(并提交)区和帐户行。
在MySQL(x86_64)中,MySQL服务器5.6.33-79.0 Percona Server(GPL),版本79.0,修订版2084bdb中实际上存在一个错误
安装了MAMP Pro,并一一安装了apache,mysql和php。 在这个新环境下同一个项目
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.