FOREIGN KEY 保存在 MYSQL 8 in digitalocean Managed Databases 后不适用
FOREIGN KEY doesn't apply after saved in MYSQL 8 in digitalocean Managed Databases
我为开发创建了 digitalocean 托管数据库。 MYSQL 版本是 8.0.20
问题是保存 SQL 脚本后没有错误。 table创建成功。
但是当我去 table 之后 table 没有应用外键到 table。
我将在事件发生前后将我的代码放在下面。
这是插入前的查询。
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
更改并尝试全局 SQL 模式 ANSI_QUOTES
ANSI_QUOTES
将 " 更改为 `,即标识符引号字符。这可能会破坏旧的 MariaDB 应用程序,这些应用程序假设将 " 用作字符串引号字符。
我为开发创建了 digitalocean 托管数据库。 MYSQL 版本是 8.0.20 问题是保存 SQL 脚本后没有错误。 table创建成功。 但是当我去 table 之后 table 没有应用外键到 table。 我将在事件发生前后将我的代码放在下面。
这是插入前的查询。
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
更改并尝试全局 SQL 模式 ANSI_QUOTES
ANSI_QUOTES 将 " 更改为 `,即标识符引号字符。这可能会破坏旧的 MariaDB 应用程序,这些应用程序假设将 " 用作字符串引号字符。