SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Câu lệnh SQLite REPLACE

Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng REPLACE của SQLite để chèn hoặc thay thế hàng hiện có trong bảng.

Giới thiệu về SQLite REPLACE tuyên bố

Ý tưởng về REPLACE là khi một UNIQUE hoặc PRIMARY KEY vi phạm ràng buộc xảy ra, nó thực hiện như sau:

  • Đầu tiên, hãy xóa hàng hiện có gây ra vi phạm ràng buộc.
  • Thứ hai, chèn một hàng mới.

Trong bước thứ hai, nếu có bất kỳ vi phạm ràng buộc nào, ví dụ:NOT NULL xảy ra ràng buộc, REPLACE tuyên bố sẽ hủy bỏ hành động và khôi phục giao dịch.

Phần sau minh họa cú pháp của REPLACE tuyên bố.

INSERT OR REPLACE INTO table(column_list)
VALUES(value_list);Code language: SQL (Structured Query Language) (sql)

Hoặc ở dạng ngắn gọn:

REPLACE INTO table(column_list)
VALUES(value_list);Code language: SQL (Structured Query Language) (sql)

Hãy xem một số ví dụ về việc sử dụng REPLACE của SQLite để hiểu cách nó hoạt động.

SQLite REPLACE các ví dụ về tuyên bố

Đầu tiên, tạo một bảng mới có tên positions với cấu trúc sau.

CREATE TABLE IF NOT EXISTS positions (
	id INTEGER PRIMARY KEY,
	title TEXT NOT NULL,
	min_salary NUMERIC
);Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Thứ hai, chèn một số hàng vào các vị trí positions bảng.

INSERT INTO positions (title, min_salary)
VALUES ('DBA', 120000),
       ('Developer', 100000),
       ('Architect', 150000);Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Thứ ba, xác minh chèn bằng cách sử dụng SELECT sau tuyên bố.

SELECT * FROM positions;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Câu lệnh sau tạo một chỉ mục duy nhất trên title cột của positions để đảm bảo rằng nó không có bất kỳ tiêu đề vị trí trùng lặp nào:

CREATE UNIQUE INDEX idx_positions_title 
ON positions (title);Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Giả sử, bạn muốn thêm một vị trí vào các vị trí positions nếu nó không tồn tại, trong trường hợp vị trí tồn tại, hãy cập nhật cái hiện tại.

REPLACE sau câu lệnh chèn một hàng mới vào positions bảng vì tiêu đề vị trí Full Stack Developer không ở các vị trí positions bảng.

REPLACE INTO positions (title, min_salary)
VALUES('Full Stack Developer', 140000);Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Bạn có thể xác minh REPLACE hoạt động bằng cách sử dụng SELECT tuyên bố.

SELECT
	id,title,min_salary
FROM
	positions;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Xem tuyên bố sau.

REPLACE INTO positions (title, min_salary)
VALUES('DBA', 170000);
Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Đầu tiên, SQLite kiểm tra UNIQUE ràng buộc.

Thứ hai, vì câu lệnh này đã vi phạm UNIQUE bằng cách cố gắng thêm DBA tiêu đề đã tồn tại, SQLite đã xóa hàng hiện có.

Thứ ba, SQLite đã chèn một hàng mới với dữ liệu được cung cấp bởi REPLACE tuyên bố.

Lưu ý rằng REPLACE câu lệnh có nghĩa là INSERT hoặc REPLACE , không phải INSERT hoặc UPDATE .

Xem tuyên bố sau.

REPLACE INTO positions (id, min_salary)
VALUES(2, 110000);Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Điều mà câu lệnh cố gắng làm là cập nhật min_salary cho vị trí có id 2, là nhà phát triển.

Đầu tiên, vị trí có id 2 đã tồn tại, REPLACE câu lệnh loại bỏ nó.

Sau đó, SQLite cố gắng chèn một hàng mới có hai cột:(id , min_salary ). Tuy nhiên, nó vi phạm NOT NULL ràng buộc của cột tiêu đề. Do đó, SQLite sẽ khôi phục giao dịch.

Nếu title cột không có NOT NULL ràng buộc, REPLACE câu lệnh sẽ chèn một hàng mới có cột tiêu đề là NULL .

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sử dụng REPLACE của SQLite để chèn hoặc thay thế một hàng trong bảng.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng một số dưới dạng tiền tệ trong SQLite

  2. Chèn ngày và giờ hiện tại vào cơ sở dữ liệu SQLite

  3. Xuất kết quả truy vấn SQLite dưới dạng danh sách được phân tách bằng tab

  4. SQLiteStatement thực thi một lệnh CHỌN / CHÈN / XÓA / CẬP NHẬT

  5. Cách thêm tháng vào ngày trong SQLite