我有一个SQLite表,它具有以下类型的模式:
CREATE TABLE Example
(
unique_col VARCHAR UNIQUE,
/* other columns here... */
);
我希望发生的是,当我将一个新行INSERT
到这个表中时,如果它的unique_col
列已经存在(即,插入将违反唯一性约束),那么我希望在插入发生之前,* 现有 * 的违规行将其unique_col
设置为NULL。
我想我是在寻找某种“ON CONFLICT SET NULL
“特性,但我在SQLite文档中找不到任何立即适用的特性。
我知道我可以直接在表上使用before-insert触发器来实现这一点,但是是否有一种方法可以在表模式中使用列约束或类似约束来实现我在文档中可能遗漏的功能?
谢谢你!
1条答案
按热度按时间qq24tv8q1#
假设您已经使用如下语句创建了该表:
使用返回要插入的行的
CTE
,并在INSERT
语句中对表执行LEFT
联接:请参阅demo。