我正在生成一个标识符列,以便对订阅进行分组。该列的值使用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
,并从查询中删除了外键。当我没有在串联中包含外键时,没有错误。
1条答案
按热度按时间xtfmy6hx1#
这是一个已知的限制。documentation说:
存储的生成列的基列上的外键约束不能将CASCADE、SET NULL或SET DEFAULT用作ON UPDATE或ON UPDATE引用操作。
您的解决方案似乎是:
ON UPDATE
和ON DELETE
选项。STORED
选项。