sqlite 仅当同一行中两列的值不相同时才插入

6psbrbz9  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(225)

如果我有一个表

id            col1         col2             col3
1             John         Edward           any OK
2             John         David            any OK
3             John         Sam              any OK
4             David        Sam              any OK
5             John         Sam              any * Not allowed it already exists.

因此,John可以在col1上重复,但不允许在col1和col2上重复John和Sam。
col1和col2不是唯一。
如何在SQLite中对该表进行插入和更新?

1szpjjfi

1szpjjfi1#

只需创建一个跨越col1col2UNIQUE约束:

CREATE TABLE table_name(
    id INTEGER PRIMARY KEY,
    col1 TEXT,
    col2 TEXT,
    col3 TEXT,
    UNIQUE(col1, col2)
);

在您的应用程序中,只处理违反约束的异常。

相关问题