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
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ố 8Trong 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;
0Trong 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'];
0Trong 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'];
1Trong 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