在Digitalocean托管数据库中保存在MYSQL 8中后,FOREIGN KEY不适用

时间:2020-08-06 13:36:28

标签: mysql digital-ocean mysql-8.0

我为开发创建了digitalocean托管数据库。 MYSQL版本是8.0.20 问题是保存SQL脚本后没有错误。表创建成功。 但是当我去那桌子之后那张桌子还没有将外键应用到桌子上时。 在事件发生之前和之后,我都将代码放在下面。

这是插入之前的查询。

CREATE TABLE `user_reg`  (
  `user_reg_id` int(0) NOT NULL AUTO_INCREMENT,
  `user_id` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`user_reg_id`) USING BTREE,
  INDEX `user_id`(`user_id`) USING BTREE,
  CONSTRAINT `user_reg_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sp_user` (`user_bid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

这是从mysql转储后的查询。

CREATE TABLE `user_reg`  (
  `user_reg_id` int(0) NOT NULL AUTO_INCREMENT,
  `user_id` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`user_reg_id`) USING BTREE,
  INDEX `user_id`(`user_id`) USING BTREE,
  CONSTRAINT `"user_reg_ibfk_1"` FOREIGN KEY () REFERENCES `"sp_user"` () ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

MYSQL服务器尚未吸收外键。

FOREIGN KEY () REFERENCES `"sp_user"` () ON DELETE CASCADE ON UPDATE

1 个答案:

答案 0 :(得分:1)

更改并尝试使用全局SQL模式ANSI_QUOTES

ANSI_QUOTES 更改为标识符引号字符”。这可能会破坏旧的MariaDB应用程序,这些应用程序假定将“”用作字符串引号字符。