提问人:Connor Gyde 提问时间:11/7/2023 最后编辑:Connor Gyde 更新时间:11/7/2023 访问量:56
MySQL CONCAT_WS无法使用外键
MySQL CONCAT_WS not working with foreign keys
问:
我正在生成一个标识符列,以便对订阅进行分组。列的值用于连接表中的不同列值。但是,我在尝试更改表格时出现错误:CONCAT_WS
Database error code: 1215
Database error: Cannot add foreign key constraint
下面是有问题的查询。请注意,和是外键:organisation_id
order_id
ALTER TABLE `subscriptions`
ADD COLUMN `identifier` VARCHAR(191) GENERATED ALWAYS AS (
CONCAT_WS('-', `organisation_id`, `is_trial`, `start_date`, `end_date`, `order_id`, `superseded_date`)
) STORED;
我尝试了 和 ,以及从查询中删除外键。当我在串联中未包含外键时,没有错误。CONCAT
CONCAT_WS
答:
2赞
Barmar
11/7/2023
#1
这是一个已知的限制。文档说:
存储的生成列的基列上的外键约束不能将 CASCADE、SET NULL 或 SET DEFAULT 用作 ON UPDATE 或 ON DELETE 引用操作。
您的解决方法似乎是:
- 删除外键约束。
- 删除外键的 和 选项。
ON UPDATE
ON DELETE
- 删除生成的列的选项。
STORED
评论
0赞
Connor Gyde
11/7/2023
谢谢你,我会尝试这些。
评论
SELECT VERSION();
ON DELETE CASCADE