Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 trong MySQL và cách sử dụng ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 để thực thi tính duy nhất của các giá trị trong một cột hoặc một nhóm cột trong bảngGiới thiệu về ràng buộc MySQL [CONSTRAINT constraint_name]
UNIQUE(column_list)Code language: SQL (Structured Query Language) (sql)0Đôi khi, bạn muốn đảm bảo các giá trị trong một cột hoặc một nhóm cột là duy nhất. Ví dụ: địa chỉ email của người dùng trong bảng [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 3 hoặc số điện thoại của khách hàng trong bảng [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 4 phải là duy nhất. Để thực thi quy tắc này, bạn sử dụng ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0Ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 là một ràng buộc toàn vẹn nhằm đảm bảo các giá trị trong một cột hoặc nhóm cột là duy nhất. Ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 có thể là ràng buộc cột hoặc ràng buộc bảngĐể xác định ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 cho một cột khi bạn tạo bảng, bạn sử dụng cú pháp nàyCREATE TABLE table_name(
...,
column_name data_type UNIQUE,
...
); Code language: SQL (Structured Query Language) (sql)
Trong cú pháp này, bạn bao gồm từ khóa [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 trong định nghĩa của cột mà bạn muốn thực thi quy tắc duy nhất. Nếu bạn chèn hoặc cập nhật một giá trị gây ra sự trùng lặp trong CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
phone VARCHAR(15) NOT NULL UNIQUE,
address VARCHAR(255) NOT NULL,
PRIMARY KEY (supplier_id),
CONSTRAINT uc_name_address UNIQUE (name , address)
);
Code language: SQL (Structured Query Language) (sql) 0, MySQL sẽ từ chối thay đổi và thông báo lỗiRàng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 này là một ràng buộc cột. Và bạn có thể sử dụng nó để thực thi quy tắc duy nhất cho một cộtĐể xác định ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 cho hai hoặc nhiều cột, bạn sử dụng cú pháp sauCREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql)
Trong cú pháp này, bạn thêm một danh sách các cột được phân tách bằng dấu phẩy trong dấu ngoặc đơn sau từ khóa [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0. MySQL sử dụng tổ hợp các giá trị trong cả hai cột CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
phone VARCHAR(15) NOT NULL UNIQUE,
address VARCHAR(255) NOT NULL,
PRIMARY KEY (supplier_id),
CONSTRAINT uc_name_address UNIQUE (name , address)
);
Code language: SQL (Structured Query Language) (sql) 4 và CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
phone VARCHAR(15) NOT NULL UNIQUE,
address VARCHAR(255) NOT NULL,
PRIMARY KEY (supplier_id),
CONSTRAINT uc_name_address UNIQUE (name , address)
);
Code language: SQL (Structured Query Language) (sql) 5 để đánh giá tính duy nhấtNếu bạn xác định ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 mà không chỉ định tên, MySQL sẽ tự động tạo tên cho nó. Để xác định ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 với tên, bạn sử dụng cú pháp này[CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql)
Trong cú pháp này, bạn chỉ định tên của ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 sau từ khóa CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
phone VARCHAR(15) NOT NULL UNIQUE,
address VARCHAR(255) NOT NULL,
PRIMARY KEY (supplier_id),
CONSTRAINT uc_name_address UNIQUE (name , address)
);
Code language: SQL (Structured Query Language) (sql) 9Ví dụ về ràng buộc MySQL [CONSTRAINT constraint_name]
UNIQUE(column_list)Code language: SQL (Structured Query Language) (sql)0Đầu tiên, tạo một bảng mới có tên là phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1 với hai ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
phone VARCHAR(15) NOT NULL UNIQUE,
address VARCHAR(255) NOT NULL,
PRIMARY KEY (supplier_id),
CONSTRAINT uc_name_address UNIQUE (name , address)
);
Code language: SQL (Structured Query Language) (sql)
Trong ví dụ này, ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 đầu tiên được xác định cho cột phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 4phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql)
Và ràng buộc thứ hai dành cho các cột phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 5 tên và phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 6CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql)
Thứ hai, chèn một hàng vào bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1INSERT INTO suppliers(name, phone, address)
VALUES( 'ABC Inc',
'(408)-908-2476',
'4000 North 1st Street'); Code language: SQL (Structured Query Language) (sql)
Thứ ba, cố gắng chèn một nhà cung cấp khác nhưng có số điện thoại đã tồn tại trong bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1INSERT INTO suppliers(name, phone, address)
VALUES( 'XYZ Corporation','(408)-908-2476','3000 North 1st Street'); Code language: SQL (Structured Query Language) (sql)
MySQL đã đưa ra một lỗi Error Code: 1062. Duplicate entry '(408)-908-2476' for key 'phone' Code language: JavaScript (javascript)
Thứ tư, thay đổi số điện thoại thành một số khác và thực hiện lại câu lệnh chèn INSERT INTO suppliers(name, phone, address)
VALUES( 'XYZ Corporation','(408)-908-3333','3000 North 1st Street'); Code language: SQL (Structured Query Language) (sql)
Thứ năm, chèn một hàng vào bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1 với các giá trị đã tồn tại trong các cột CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 0 và phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 6CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 0MySQL đưa ra lỗi vì ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 3 đã bị vi phạmCREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 1Các ràng buộc và chỉ mục của MySQL [CONSTRAINT constraint_name]
UNIQUE(column_list)Code language: SQL (Structured Query Language) (sql)0Khi bạn xác định một ràng buộc duy nhất, MySQL sẽ tạo một chỉ mục [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 tương ứng và sử dụng chỉ mục này để thực thi quy tắcCâu lệnh CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 6 hiển thị định nghĩa của bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 2Như bạn có thể thấy từ đầu ra, MySQL đã tạo hai chỉ mục [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 trên bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1. phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 4 và CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 3Câu lệnh INSERT INTO suppliers(name, phone, address)
VALUES( 'ABC Inc',
'(408)-908-2476',
'4000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 2 sau đây hiển thị tất cả các chỉ mục được liên kết với bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 3Bỏ một ràng buộc duy nhấtĐể loại bỏ một ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0, bạn có thể sử dụng câu lệnh INSERT INTO suppliers(name, phone, address)
VALUES( 'ABC Inc',
'(408)-908-2476',
'4000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 5 hoặc INSERT INTO suppliers(name, phone, address)
VALUES( 'ABC Inc',
'(408)-908-2476',
'4000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 6CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 4CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 5Ví dụ: câu lệnh sau loại bỏ ràng buộc CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 3 trên bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 6Thực hiện lại câu lệnh INSERT INTO suppliers(name, phone, address)
VALUES( 'ABC Inc',
'(408)-908-2476',
'4000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 9 để xác minh xem ràng buộc INSERT INTO suppliers(name, phone, address)
VALUES( 'XYZ Corporation','(408)-908-2476','3000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 0 đã được gỡ bỏ chưaCREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 3Thêm ràng buộc duy nhất mớiINSERT INTO suppliers(name, phone, address)
VALUES( 'XYZ Corporation','(408)-908-2476','3000 North 1st Street'); Code language: SQL (Structured Query Language) (sql) 1 sau đây thêm một ràng buộc duy nhất vào một cột của bảng hiện cóCREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 8Câu lệnh này thêm một ràng buộc [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 CONSTRAINT uc_name_address UNIQUE (name , address) Code language: SQL (Structured Query Language) (sql) 3 trở lại bảng phone VARCHAR(12) NOT NULL UNIQUE Code language: SQL (Structured Query Language) (sql) 1CREATE TABLE table_name(
...
column_name1 column_definition,
column_name2 column_definition,
...,
UNIQUE(column_name1,column_name2)
); Code language: SQL (Structured Query Language) (sql) 9Lưu ý rằng MySQL sẽ không thêm ràng buộc duy nhất nếu dữ liệu hiện có trong các cột được chỉ định trong ràng buộc duy nhất không tuân thủ quy tắc duy nhất. Trong hướng dẫn này, bạn đã học cách sử dụng ràng buộc MySQL [CONSTRAINT constraint_name]
UNIQUE(column_list) Code language: SQL (Structured Query Language) (sql) 0 để thực thi tính duy nhất của các giá trị trong một cột hoặc nhóm cột của bảng
Làm cách nào để đặt giá trị duy nhất trong phpMyAdmin?
Cách dễ nhất để tạo khóa duy nhất trong phpMyAdmin là tạo bảng trước. Sau khi bảng được tạo, hãy chọn các hộp kiểm bên cạnh các cột là duy nhất khi được kết hợp và nhấp vào Duy nhất bên dưới bảng .
Làm cách nào để sử dụng ràng buộc duy nhất trong MySQL?
Đôi khi chúng tôi muốn thêm một khóa duy nhất vào cột của một bảng hiện có; . Sau đây là cú pháp của câu lệnh ALTER TABLE để thêm một khóa duy nhất. ALTER TABLE table_name THÊM CONSTRAINT constraint_name UNIQUE(column_list);
Ví dụ ràng buộc duy nhất là gì?
Làm cách nào để đặt một trường duy nhất trong MySQL?
Cú pháp thêm ĐỘC ĐÁO vào trường hiện có. alter table yourTableName add UNIQUE(yourColumnName); Áp dụng cú pháp trên để thêm UNIQUE vào cột 'tên'. Bây giờ chúng tôi không thể chèn các bản ghi trùng lặp vào bảng vì chúng tôi đã đặt trường là duy nhất. |