状态:
使用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

我在文件中没有发现这种可能性,所以我在这里问这个。这是一个可配置的功能,因为如果它自动完成,我会假设它可能是非常关键的?
有什么想法吗?
编辑:请看答案。

最佳答案

好吧,在插入另一个从NAVICAT MySql工具创建的转储之前,我似乎已经重写了转储。
但是这个理论上应该是相同的,并没有创建SHOW create TABLE所示的语句。(感谢@Michael Berkowski的提示!)
我发现在“高级”下有一个选项,可以使用SHOW CREATE TABLE中的语句,该选项确实导出了FK约束及其名称。
因此,第一个转储没有设置FK名称,因此mariadb为它们创建了自己的密钥名称,这在技术上是正确的。
所以这是一个简单的自制问题,加上一点技术盐。

关于mysql - MariaDB 10.0重命名转储插入时的外键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28089629/

10-16 13:53