首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MariaDB 10.0在转储插入时重命名外键

MariaDB 10.0在转储插入时重命名外键
EN

Stack Overflow用户
提问于 2015-01-22 21:10:23
回答 1查看 83关注 0票数 1

状态: MariaDb 10.0的两个精确的数据库设置

一个是满的,另一个是空的,等待转储插入。

表上存在外键约束:

代码语言:javascript
复制
ALTER TABLE `rel_account_account` ADD CONSTRAINT `FK_Account` FOREIGN KEY (`InAccountID`) REFERENCES `t_account` (`ID`) ON DELETE RESTRICT ON UPDATE CASCADE;

如果我通过以下方式转储数据库

代码语言:javascript
复制
mysqldump -uroot -p --default-character-set=utf8 livedb -r live.sql

并通过以下方式将其恢复到另一个系统上

代码语言:javascript
复制
mysql -uroot -p --default-character-set=utf8 livedb
mysql> SOURCE live.sql

然后,将外键重命名为特定的模式:

代码语言:javascript
复制
<tablename>_ifbk<index>

这意味着FK:

代码语言:javascript
复制
FK_Account

已自动重命名为:

代码语言:javascript
复制
rel_account_account_ifbk_1

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

有什么想法吗?

编辑:请参阅答案。

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 22:48:05

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

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

我发现在advanced下面有一个选项,可以使用SHOW CREATE TABLE中的语句,它确实会将FK约束及其名称一起导出。

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

所以这是一个简单的自制问题,带有一点技术上的盐。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28089629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档