Chèn mysql nếu tồn tại bỏ qua

Có một chút thay đổi trong Truy vấn, bạn chỉ cần thử chọn bản ghi mà bạn muốn chèn vào cơ sở dữ liệu trước, nếu nó không tồn tại thì bạn có thể chèn vào đó.
xem đoạn dưới đây
INSERT INTO table_listnames [name, address, tele]
SELECT * FROM [SELECT 'name1', 'add', '022'] AS tmp
WHERE NOT EXISTS [
    SELECT name FROM table_listnames WHERE name = 'name1'
] LIMIT 1;

Hy vọng nó giúp

Trong hướng dẫn MariaDB này, chúng ta sẽ thảo luận cách sử dụng điều kiện MariaDB Insert If Not Exists và xem xét một số ví dụ liên quan đến điều kiện đó. Có danh sách các chủ đề được thảo luận

  • MariaDB Chèn Nếu Không Tồn Tại
  • MariaDB Chèn nếu không tồn tại Khác Cập nhật
  • MariaDB Chèn vào nếu không tồn tại
  • MariaDB Thêm cột nếu không tồn tại
  • MariaDB Thêm ràng buộc nếu không tồn tại
  • MariaDB Thêm chỉ mục nếu không tồn tại
  • MariaDB Thêm các ràng buộc duy nhất nếu không tồn tại
  • MariaDB Thêm chỉ mục duy nhất nếu không tồn tại

Mục lục

  • MariaDB Chèn Nếu Không Tồn Tại
  • MariaDB Chèn nếu không tồn tại Khác Cập nhật
  • MariaDB Chèn vào nếu không tồn tại
  • MariaDB Thêm cột nếu không tồn tại
  • MariaDB Thêm ràng buộc nếu không tồn tại
  • MariaDB Thêm chỉ mục nếu không tồn tại
  • MariaDB Thêm các ràng buộc duy nhất nếu không tồn tại
  • MariaDB Thêm chỉ mục duy nhất nếu không tồn tại

MariaDB Chèn Nếu Không Tồn Tại

Ở đây chúng ta sẽ hiểu cách chèn các hàng trong bảng nếu nó không tồn tại trong MariaDB

Đó là bởi vì khi chúng ta có một cột có ràng buộc PRIMARY KEY hoặc UNIQUE KEY thì nó sẽ báo lỗi mỗi khi chúng ta chèn một hàng mới với các giá trị trùng lặp cho các cột này

Nếu chúng ta muốn vẫn chèn vào bảng khi dữ liệu không tồn tại thì chúng ta cần tạo một giải pháp khắc phục sự cố với các câu lệnh do MySQL cung cấp. Có ba cách chúng ta có thể sử dụng để “chèn nếu không tồn tại” trong MySQL

  • Sử dụng câu lệnh INSERT IGNORE
  • Trên mệnh đề CẬP NHẬT KHÓA DUPLICATE
  • Sử dụng câu lệnh REPLACE

Lệnh MariaDB INSERT IGNORE thường được sử dụng để chuyển một lỗi mà MySQL đưa ra khi bạn sử dụng câu lệnh INSERT thông thường thành một cảnh báo, cho phép truy vấn của bạn tiếp tục chạy mà không bị xáo trộn

Trước tiên, hãy xem bảng STATES_OF_USA bằng truy vấn sau

SELECT * FROM STATES_OF_USA;

Câu lệnh MariaDB SELECT truy xuất tất cả các bản ghi từ bảng STATES_OF_USA

Câu lệnh CHỌN của MariaDB cho STATES_OF_USA

Dưới đây là một ví dụ về câu lệnh INSERT IGNORE để chèn một hàng nếu không tồn tại trong truy vấn với sự trợ giúp của truy vấn sau

THÍ DỤ

INSERT IGNORE INTO STATES_OF_USA[STATE_ID,STATE_NAME,STATE_SHORTFORM,STATE_POPULATION]
VALUES[2,'ALASKA','AK','MEDIUM'];

Trong truy vấn này, với sự trợ giúp của câu lệnh INSERT IGNORE, MariaDB sẽ chèn một hàng nếu các giá trị không tồn tại trong bảng. Và nó sẽ đưa ra cảnh báo về ràng buộc PRIMARY KEY đối với các giá trị khóa trùng lặp

Đọc. MariaDB giữa

MariaDB Chèn nếu không tồn tại Khác Cập nhật

Trong phần này, chúng ta sẽ hiểu cách chèn nó nếu không tồn tại, vì điều đó chúng ta sẽ sử dụng mệnh đề ON DUPLICATE KEY UPDATE trong MariaDB và điều này được giải thích với sự trợ giúp của một ví dụ minh họa

Mệnh đề MariaDB ON DUPLICATE KEY UPDATE được sử dụng để cập nhật các hàng với giá trị mới khi tìm thấy giá trị trùng lặp trong ràng buộc UNIQUE KEY hoặc PRIMARY KEY

Dưới đây là một ví dụ minh họa về mệnh đề ON DUPLICATE KEY UPDATE sẽ được sử dụng ở cuối truy vấn cho mệnh đề INSERT như hình bên dưới

THÍ DỤ

INSERT IGNORE INTO STATES_OF_USA[STATE_ID,STATE_NAME,STATE_SHORTFORM,STATE_POPULATION]
VALUES[2,'ALASKA','AK','MEDIUM']
ON DUPLICATE KEY UPDATE 
STATE_ID=2,
STATE_NAME='ALASKA',
STATE_SHORTFORM='AK',
STATE_POPULATION='MEDIUM';

Đầu tiên, nó sẽ thực thi truy vấn chèn thông thường ở trên trong MariaDB nhưng khi tìm thấy các giá trị trùng lặp thì MariaDB sẽ thực hiện cập nhật thay vì chèn bằng cách sử dụng mệnh đề CẬP NHẬT KHÓA TRÊN DUPLICATE

Đọc. Trung vị MariaDB

MariaDB Chèn vào nếu không tồn tại

Qua đây chúng ta sẽ hiểu cách chèn vào nếu không tồn tại trong truy vấn MariaDB. Và nó sẽ được giải thích với sự trợ giúp của một ví dụ minh họa

MariaDB INSERT INTO EXISTS giải thích rằng nếu truy vấn con trả về bất kỳ hàng nào thì truy vấn con NOT EXISTS là SAI. Nhưng nếu truy vấn con trong mệnh đề NOT EXISTS là TRUE thì nó sẽ không trả về bất kỳ hàng nào cả. Đây là cú pháp được đưa ra dưới đây

CÚ PHÁP

INSERT INTO TABLE_NAME[COLUMN_1,COLUMN_2,COLUMN_N]
SELECT * FROM [SELECT VALUE_1,VALUE_2,VALUE_N] AS TEMP_NAME
WHERE NOT EXISTS [CONDITION_SUBQUERY];

Giải thích cú pháp

  • TABLE_NAME. Nó là tên của bảng mà từ đó chúng ta muốn chèn một bản ghi mới
  • COLUMN_1, COLUMN_2, COLUMN_N. Đây là danh sách các cột của bạn trong tên_bảng của bạn
  • ĐIỀU KIỆN_SUBQUERY. Đó là truy vấn phụ bao gồm câu lệnh CHỌN để tìm hàng đáp ứng một điều kiện cụ thể

Hãy cùng xem ví dụ minh họa về việc chèn nếu không tồn tại bằng truy vấn sau

THÍ DỤ

INSERT INTO STATES_OF_USA [STATE_ID,STATE_NAME,STATE_SHORTFORM,STATE_POPULATION]
SELECT * FROM [SELECT 3 AS STATE_ID, 'ARIZONA' AS STATE_NAME,'AZ' AS STATE_SHORTFORM,'LOW' AS STATE_POPULATION] AS temp
WHERE NOT EXISTS [
SELECT STATE_NAME FROM STATES_OF_USA WHERE STATE_NAME = 'ARIZONA'
] 
LIMIT 1;

SELECT * FROM STATES_OF_USA;

Chúng tôi đang chọn bản ghi từ bảng STATES_OF_USA trong truy vấn bên ngoài với mệnh đề NOT EXISTS. FALSE sẽ được tạo nếu hàng không thực sự tồn tại trong bảng. Câu lệnh sẽ CHÈN hàng vì có từ khóa ‘NOT‘ trước từ khóa EXISTS

Đọc. MariaDB Không Giữa

MariaDB Thêm cột nếu không tồn tại

Ở đây chúng ta sẽ hiểu và tìm hiểu cách thêm cột với mệnh đề MariaDB IF EXISTS trong truy vấn và điều này được giải thích với sự trợ giúp của một ví dụ minh họa

Trong MariaDB, câu lệnh ALTER TABLE được sử dụng để thêm, xóa/xóa, sửa đổi và đổi tên tên cột trong bảng. Và mệnh đề IF NOT EXISTS chỉ được sử dụng khi chúng ta cần thêm bớt hoặc sửa đổi hoặc chèn các bản ghi vào bảng

Đây là cú pháp của cột thêm MariaDB nếu không tồn tại bởi truy vấn sau

CÚ PHÁP

ALTER TABLE YOUR_TABLE_NAME IF NOT EXISTS COLUMN_NAME DATA TYPE;

Dưới đây là ví dụ minh họa về câu lệnh MariaDB ALTER TABLE để thêm một cột trong truy vấn với mệnh đề IF EXISTS được hiển thị bên dưới

THÍ DỤ

ALTER TABLE STATES_OF_USA ADD IF NOT EXISTS USA_STATE_NAME VARCHAR[30];

Trong truy vấn này, chúng tôi sử dụng câu lệnh ALTER TABLE để thêm một column_name mới có tên USA_STATE_NAME với kiểu dữ liệu VARCHAR[30] cho column_name trong bảng STATES_OF_USA

Đọc. Cách tải tệp vào MariaDB

MariaDB Thêm ràng buộc nếu không tồn tại

Ở đây chúng ta sẽ hiểu cách thêm một ràng buộc nếu không tồn tại bằng cách sử dụng câu lệnh MariaDB ALTER TABLE và được giải thích với sự trợ giúp của một ví dụ minh họa

Trong MariaDB, CONSTRAINTS cung cấp hạn chế đối với dữ liệu của bảng. nếu câu lệnh bỏ qua các RÀNG BUỘC hoạt động thì nó sẽ báo lỗi. Có bốn loại ràng buộc trong bảng. KHÓA CHÍNH, KHÓA NGOÀI, KHÓA DUY NHẤT và KIỂM TRA

Dưới đây là định nghĩa về các RÀNG BUỘC chi tiết bên dưới

  • KHÓA CHÍNH. Nó đặt cột cho các hàng tham chiếu. Và giá trị không được rỗng và duy nhất
  • KHÓA NGOÀI. Nó đặt các cột làm tham chiếu của PRIMARY KEY cho một bảng khác
  • ĐỘC NHẤT. Nó yêu cầu một giá trị trong cột và sẽ xảy ra một lần trong bảng
  • KIỂM TRA. Cần kiểm tra xem dữ liệu có đáp ứng điều kiện đã cho hay không

Dưới đây là ví dụ minh họa để thêm các ràng buộc nếu không tồn tại trong bảng bằng cách sử dụng câu lệnh ALTER TABLE trong truy vấn sau

THÍ DỤ

________số 8

Trong phần này, chúng ta đã tạo ràng buộc là UNIQUE KEY trên cột STATE_NAME của bảng STATES_OF_USA bằng cách sử dụng câu lệnh ALTER TABLE. Nếu các ràng buộc vẫn không tồn tại, chúng ta sẽ sử dụng mệnh đề IF NOT EXISTS để thêm ràng buộc UNIQUE KEY cho bảng STATE_NAME bằng cách sử dụng câu lệnh ALTER TABLE

Chúng ta cũng cần cung cấp một constraint_name là EMPLOYEE_LASTNAME cho UNIQUE KEY của cột LAST_NAME trong bảng EMPLOYEE bằng cách sử dụng câu lệnh ALTER TABLE

Đọc. MariaDB Sharding là gì

MariaDB Thêm chỉ mục nếu không tồn tại

Trong phần này, chúng ta sẽ hiểu cách thêm một chỉ mục với mệnh đề IF NOT EXISTS trong truy vấn bằng cách sử dụng câu lệnh MariaDB CREATE INDEX. Và nó được giải thích với sự trợ giúp của cú pháp và một ví dụ minh họa

Chỉ mục MariaDB là một phương pháp hiệu quả để truy xuất bản ghi nhanh hơn. Đối với mỗi giá trị xuất hiện trong các cột được lập chỉ mục, một chỉ mục tạo ra một mục nhập. Đây là cú pháp của ADD INDEX IF NOT EXISTS bằng cách sử dụng câu lệnh CREATE INDEX trong truy vấn bên dưới

CÚ PHÁP

CREATE INDEX IF NOT EXISTS YOUR_INDEX_NAME 
ON YOUR_TABLE_NAME [COLUMN_NAME];

Hãy cùng xem ví dụ bằng cách sử dụng câu lệnh CREATE INDEX để thêm chỉ mục nếu không tồn tại trong truy vấn sau

THÍ DỤ

SELECT * FROM STATES_OF_USA;
0

Trong truy vấn trước, chúng tôi đã tạo một chỉ mục có tên NAME_OF_STAES bằng cách sử dụng mệnh đề IF NOT EXISTS trên cột STATE_NAME từ bảng STATES_OF_USA. Vì vậy, trước tiên nó sẽ kiểm tra xem index_name là NAME_OF_STATES đã được tạo hay chưa. Nếu nó được tạo, nó sẽ hiển thị cho chúng tôi một cảnh báo

Nếu chúng ta muốn kiểm tra xem chỉ mục mới đã được tạo hay chưa thì chúng ta có thể sử dụng câu lệnh SHOW INDEXES cho tên chỉ mục mới của bảng STATES_OF USA

Đọc. Các từ dành riêng của MariaDB

MariaDB Thêm các ràng buộc duy nhất nếu không tồn tại

Trong chủ đề con này, chúng ta sẽ thêm ràng buộc UNIQUE KEY với mệnh đề IF NOT EXISTS trong câu lệnh ALTER TABLE và được giải thích bằng một ví dụ minh họa

Trong MariaDB, ràng buộc UNIQUE KEY được sử dụng để thêm giá trị vào cột và nó sẽ xảy ra một lần trong/các cột. Dưới đây là minh họa để thêm các ràng buộc duy nhất nếu không tồn tại bằng truy vấn sau

THÍ DỤ

INSERT IGNORE INTO STATES_OF_USA[STATE_ID,STATE_NAME,STATE_SHORTFORM,STATE_POPULATION]
VALUES[2,'ALASKA','AK','MEDIUM'];
0

Trong truy vấn trước, chúng ta đã tạo một ràng buộc tên là EMPLOYEE_FIRSTNAME trên cột FIRST_NAME bằng cách sử dụng ràng buộc UNIQUE KEY của bảng EMPLOYEE. Và nó được thực hiện bằng cách sử dụng câu lệnh ALTER TABLE

Đọc. MariaDB Date_Format

MariaDB Thêm chỉ mục duy nhất nếu không tồn tại

Ở đây chúng ta sẽ hiểu cách thêm một tên chỉ mục duy nhất trong MariaDB nếu không tồn tại bằng cách sử dụng câu lệnh CREATE UNIQUE INDEX và được giải thích với sự trợ giúp của một ví dụ minh họa

THÍ DỤ

INSERT IGNORE INTO STATES_OF_USA[STATE_ID,STATE_NAME,STATE_SHORTFORM,STATE_POPULATION]
VALUES[2,'ALASKA','AK','MEDIUM'];
1

Trong truy vấn này, chúng tôi đã tạo một chỉ mục duy nhất có tên là STATES trên cột STATE_POPULATION từ bảng STATES_OF_USA bằng cách sử dụng câu lệnh CREATE UNIQUE INDEX

Nếu chúng ta muốn kiểm tra xem chỉ mục duy nhất đã được tạo hay chưa thì chúng ta cần sử dụng câu lệnh SHOW INDEXES

Bạn cũng có thể muốn đọc các hướng dẫn MariaDB sau đây

  • MariaDB ENUM – ​​Hướng dẫn hữu ích
  • Bảng thay đổi MariaDB Thêm chỉ mục
  • Thứ tự MariaDB theo nhiều cột
  • MariaDB Tạo cơ sở dữ liệu và người dùng
  • MariaDB Kiểm tra độ dài chuỗi
  • MariaDB Nếu Null + Ví dụ
  • Chức năng tuyệt vời nhất của MariaDB
  • MariaDB Chèn vào Chọn
  • Bảng thả MariaDB + Ví dụ

Chúng tôi đã đề cập đến điều kiện MariaDB Insert If Not Exists trong hướng dẫn MariaDB này, cũng như một số phiên bản mẫu được kết nối với nó. Có danh sách các chủ đề được thảo luận

  • MariaDB Chèn Nếu Không Tồn Tại
  • MariaDB Chèn nếu không tồn tại Khác Cập nhật
  • MariaDB Chèn vào nếu không tồn tại
  • MariaDB Thêm cột nếu không tồn tại
  • MariaDB Thêm ràng buộc nếu không tồn tại
  • MariaDB Thêm chỉ mục nếu không tồn tại
  • MariaDB Thêm các ràng buộc duy nhất nếu không tồn tại
  • MariaDB Thêm chỉ mục duy nhất nếu không tồn tại

Bijay

Tôi là Bijay có hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Trong thời gian này, tôi đã làm việc trên MariaDB và sử dụng nó trong rất nhiều dự án. Hầu hết độc giả của chúng tôi đến từ Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v.

Bạn muốn tìm hiểu MariaDB? . Ngoài ra, tôi là MVP của Microsoft

Chèn bỏ qua hoạt động như thế nào trong MySQL?

Chèn câu lệnh Bỏ qua trong MySQL có một tính năng đặc biệt là bỏ qua các hàng không hợp lệ bất cứ khi nào chúng ta chèn một hoặc nhiều hàng vào một bảng . Chúng ta có thể hiểu nó với lời giải thích sau đây, trong đó một bảng chứa cột khóa chính. Cột khóa chính không thể lưu trữ các giá trị trùng lặp vào một bảng.

Làm thế nào để viết nếu không tồn tại trong MySQL?

Trong MySQL 8. 0. 19 trở lên, bạn cũng có thể sử dụng NOT EXISTS hoặc NOT EXISTS với TABLE trong truy vấn con, như thế này. CHỌN cột1 TỪ t1 WHERE EXISTS [BẢNG t2]; Kết quả giống như khi sử dụng SELECT * không có mệnh đề WHERE trong truy vấn phụ.

Chèn bỏ qua có nghĩa là gì?

Thay vào đó, chỉ có cảnh báo được tạo. Các trường hợp INSERT IGNORE tránh lỗi . Khi chèn khóa trùng lặp, cột phải chứa ràng buộc PRIMARY KEY hoặc UNIQUE . Khi chèn giá trị NULL mà cột có ràng buộc NOT NULL .

Làm cách nào để kiểm tra xem bản ghi có tồn tại trước khi chèn vào SQL không?

Cách kiểm tra xem bản ghi có tồn tại hay không Chèn vào Bảng trong SQL Server .
TẠO KÍCH HOẠT [dbo]. [trg_afterInsert] BẬT [dbo]. [Dữ liệu mẫu]
--Kiểm tra xem các bản ghi Mới đã tồn tại trong bảng Master_Data hay chưa
NẾU TỒN TẠI[
CHỌN [Id_đơn hàng] riêng biệt từ đã chèn
NGOẠI TRỪ

Chủ Đề