MariaDB 10.0重命名转储插入上的外键

时间:2015-01-22 13:10:23

标签: mysql foreign-keys mariadb

州: 使用MariaDb 10.0进行两次精确的数据库设置

其中一个是空的,等待转储插入。

表上存在外键约束:

ALTER TABLE `rel_account_account` ADD CONSTRAINT `FK_Account` FOREIGN KEY (`InAccountID`) REFERENCES `t_account` (`ID`) ON DELETE RESTRICT ON UPDATE CASCADE;

如果我通过

转储数据库
mysqldump -uroot -p --default-character-set=utf8 livedb -r live.sql

并通过

在其他系统上恢复它
mysql -uroot -p --default-character-set=utf8 livedb
mysql> SOURCE live.sql

之后,外键将重命名为特定架构:

<tablename>_ifbk<index>

这意味着FK:

FK_Account

已自动重命名为:

rel_account_account_ifbk_1

我在文档中没有找到关于这种可能性的任何内容,所以我在这里问这个问题。这是一个可配置的功能,因为如果它自动完成我会认为它可能非常关键吗?

有什么想法吗?

编辑:请参阅答案。

1 个答案:

答案 0 :(得分:1)

好吧,似乎我在使用NAVICAT MySql工具创建的另一个插入之前覆盖了转储。

但是这个理论上应该是相同的,并没有创建SHOW CREATE TABLE所示的语句。 (感谢@Michael Berkowski提示!)

我发现有一个高级选项可以使用SHOW CREATE TABLE中的语句,它会使用它们的名称导出FK约束。

因此第一个转储没有设置FK名称,因此mariadb为它们创建了自己的密钥名称,这在技术上是正确的。

所以这是一个简单的自制问题,只需要少许技术盐。