Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql约束的liquibase迁移-成功时出错_Mysql_Liquibase - Fatal编程技术网

mysql约束的liquibase迁移-成功时出错

mysql约束的liquibase迁移-成功时出错,mysql,liquibase,Mysql,Liquibase,我在迁移中有以下更改集: <changeSet author="aaa (generated)" id="1416295794385-38" objectQuotingStrategy="QUOTE_ALL_OBJECTS"> <addForeignKeyConstraint baseColumnNames="fk_xxx_id" baseTableName="client_xxxs" constraintName="FK_2kma3uvjxartf5p9l24

我在迁移中有以下更改集:

<changeSet author="aaa (generated)" id="1416295794385-38" objectQuotingStrategy="QUOTE_ALL_OBJECTS">
        <addForeignKeyConstraint baseColumnNames="fk_xxx_id" baseTableName="client_xxxs" constraintName="FK_2kma3uvjxartf5p9l24yk2fxu" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="xxx_types"/>
</changeSet>
但是当我在mysql中检查模式时,这个约束似乎被应用了。这是我唯一一次应用约束,以前从未应用过

show create table client_xxxs;
| client_xxxs | CREATE TABLE `client_xxxs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  ...
  `fk_xxx_id` int(11) NOT NULL,
  `xxx_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  KEY `FK_2kma3uvjxartf5p9l24yk2fxu` (`fk_xxx_id`),
  CONSTRAINT `FK_2kma3uvjxartf5p9l24yk2fxu` FOREIGN KEY (`fk_xxx_id`) REFERENCES `xxx_types` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
这将阻止迁移完成

导致此异常的原因是什么,是错误还是未命中 模式触发了它? 是否可以忽略错误并使用 剩下的迁移? 还验证了直接在mysql控制台中使用约束应用程序可以正常工作

mysql> alter table client_xxxs add  CONSTRAINT `x-FK_2kma3uvjxartf5p9l24yk2fxu` FOREIGN KEY (`fk_xxx_id`) REFERENCES `xxx_types` (`id`);
Query OK, 0 rows affected (0.81 sec)
Records: 0  Duplicates: 0  Warnings: 0

show create ...
CONSTRAINT `x-FK_2kma3uvjxartf5p9l24yk2fxu` FOREIGN KEY (`fk_xxx_id`) REFERENCES `xxx_types` (`id`),

当Liquibase尝试添加约束时,mysql抛出了您看到的错误。我认为错误是由于基列中的数据与引用列中的数据不匹配。我希望不会创建外键,但mysql可能仍然会创建外键

如果您运行select*from client_xxxs,其中fk_xxx_id不在select id from xxx_type中,您会得到任何结果吗

mysql> alter table client_xxxs add  CONSTRAINT `x-FK_2kma3uvjxartf5p9l24yk2fxu` FOREIGN KEY (`fk_xxx_id`) REFERENCES `xxx_types` (`id`);
Query OK, 0 rows affected (0.81 sec)
Records: 0  Duplicates: 0  Warnings: 0

show create ...
CONSTRAINT `x-FK_2kma3uvjxartf5p9l24yk2fxu` FOREIGN KEY (`fk_xxx_id`) REFERENCES `xxx_types` (`id`),