启用/关闭 Azure MySQL 外键约束

故事背景: 我有一个环境需要导入其他环境的数据,但在导入数据的时候出现由于外键约束导致数据录入失败的情况

get_error_when_doing_dcb
 ERROR 3780 (HY000) at line 25: Referencing column 'email_template_id' and referenced column 'id' in foreign key constraint 't_email_record_t_email_template_id_fk' are incompatible.
error_details_with_dcb

于是尝试通过设置临时关闭外键约束的方式强制录入(这样可能会影响数据完整性和一致性,需谨慎操作

mysql> show variables like '%FOREIGN%';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| foreign_key_checks | ON    |
+--------------------+-------+
1 row in set (0.00 sec)

mysql> SET GLOBAL FOREIGN_KEY_CHECKS = 0;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation
mysql>

因为使用的 Azure Database for MySQL flexible server 官方授予的账号缺乏 SUPER 权限,故无法直接修改 global 级别的参数

但我们可以通过以下两种方式临时关闭会话级别的 外键约束 以已进行数据导入

方式一:会话登录前设置

mysql -u${MYSQL_USERNAME} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} --init-command="SET SESSION FOREIGN_KEY_CHECKS=0;"
config_before_login

方式二:会话登录后设置

SET FOREIGN_KEY_CHECKS = 0;
config_after_login

Finished, Well done.🚀

客官慢走,有空常来啊😄
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇