【发布时间】:2023-02-05 03:14:44
【问题描述】:
我有一个 SQL 表,它可以引用表中的另一条记录作为它的 parent 但不应引用自身。我试图用 CHECK 约束来强制执行此操作,但我的尝试失败了,因为 id 是一个自动递增列。有没有其他办法保证parent_id <> id?
我当前的尝试失败并出现错误 Check constraint 'not_own_parent' cannot refer to an auto-increment column. (errno 3818):
CREATE TABLE `content` (
`id` serial PRIMARY KEY NOT NULL,
`item_id` int NOT NULL,
`nested_item_id` int,
`block_id` int,
`order` int NOT NULL,
CONSTRAINT not_own_parent CHECK (nested_item_id <> id)
);
【问题讨论】:
-
也许您可以在插入后触发器中执行检查。
标签: mysql sql constraints