2024年4月2日发(作者:)
sqlite3 on conflict 用法
在SQLite中,ON CONFLICT子句用于处理INSERT或
UPDATE语句中的冲突。它允许您指定在存在冲突时采取的
操作。
具体用法如下:
1. ON CONFLICT REPLACE:如果存在冲突,将覆盖现有行
的值。
```sqlite
INSERT OR REPLACE INTO table_name (column1, column2)
VALUES (value1, value2);
```
2. ON CONFLICT IGNORE:如果存在冲突,忽略该行而不执
行任何操作。
```sqlite
INSERT OR IGNORE INTO table_name (column1, column2)
VALUES (value1, value2);
```
3. ON CONFLICT FAIL:如果存在冲突,放弃整个INSERT
或UPDATE操作,并返回错误信息。
```sqlite
INSERT INTO table_name (column1, column2) VALUES
(value1, value2) ON CONFLICT FAIL;
```
4. ON CONFLICT DO NOTHING:如果存在冲突,放弃该行
的插入操作,但不返回错误信息。
```sqlite
INSERT INTO table_name (column1, column2) VALUES
(value1, value2) ON CONFLICT DO NOTHING;
```
5. ON CONFLICT DO UPDATE :如果存在冲突,执行指定的
更新操作。
```sqlite
INSERT INTO table_name (column1, column2) VALUES
(value1, value2) ON CONFLICT(column) DO UPDATE SET
column1 = new_value;
```
注意事项:
- ON CONFLICT子句必须与INSERT或UPDATE语句一起使
用。
- 需要在表的定义中指定冲突列的唯一约束(例如主键、唯一
索引等)才能执行ON CONFLICT操作。
- ON CONFLICT DO UPDATE子句需要指定要更新的列以及
更新新值的方法。


发布评论