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

MySQL DROP CONSTRAINT DUY NHẤT

Ràng buộc duy nhất cho phép bạn thực thi tính duy nhất của các bản ghi trong bảng cơ sở dữ liệu của bạn và duy trì tính toàn vẹn của cơ sở dữ liệu. Dưới đây là cách loại bỏ ràng buộc duy nhất khỏi bảng MySQL bằng lệnh MySQL DROP INDEX. Nó cũng được sử dụng để xóa khóa duy nhất trong MySQL.

Ràng buộc duy nhất trong MySQL là gì?

Ràng buộc duy nhất cho một bảng là sự kết hợp của một hoặc nhiều trường xác định duy nhất mỗi bản ghi trong bảng. Các trường này có thể chứa giá trị rỗng miễn là sự kết hợp của các giá trị trường là duy nhất.

Phần thưởng đã đọc:DROP FOREIGN KY CONSTRAINT

Cách loại bỏ Ràng buộc Duy nhất trong MySQL

Dưới đây là các bước để loại bỏ ràng buộc duy nhất trong MySQL. Chúng tôi sẽ sử dụng truy vấn MySQL DROP INDEX để xóa chỉ mục hiện có khỏi bảng.

Đây là cú pháp của lệnh MySQL DROP INDEX

DROP INDEX constraint_name ON table_name
[algorithm_option | lock_option];

Trong truy vấn ở trên, bind_name là tên của ràng buộc và table_name là tên bảng cơ sở dữ liệu của bạn.

Xin lưu ý , cho dù bạn muốn DROP INDEX hay DROP UNIQUE CONSTRAINT, bạn cần sử dụng truy vấn DROP INDEX.

Phần thưởng đã đọc:CƠ SỞ DỮ LIỆU DROP của MySQL

Bạn cũng có thể cung cấp 2 đối số tùy chọn - math_option lock_option.

Thuật toán_option có thể có một trong 3 giá trị - mặc định, tại chỗ, sao chép. Tùy thuộc vào đối số của bạn, MySQL sẽ sử dụng các thuật toán khác nhau để loại bỏ ràng buộc duy nhất.

Cú pháp của nó là

ALGORITHM [=] {DEFAULT|INPLACE|COPY}
  • default - Điều này có tác dụng tương tự như việc không sử dụng math_option tranh luận
  • copy - Bảng mà bạn cần xóa ràng buộc, sẽ được sao chép và chỉ mục sẽ bị xóa khỏi bảng sao chép. Trong thời gian này, không cho phép các thao tác đồng thời như CHÈN và CẬP NHẬT.
  • inplace - Trong trường hợp này, bảng được tạo lại tại chỗ mà không bị ràng buộc. Mặc dù tùy chọn này cho phép các hoạt động đồng thời nhưng nó sẽ đặt một khóa siêu dữ liệu trong quá trình thực thi.

Tùy thuộc vào lock_option MySQL sẽ khóa / không khóa quyền truy cập đọc / ghi vào các bảng của bạn trong khi ràng buộc đang bị xóa. lock_option có cú pháp sau

LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

Nó có 4 giá trị:

  • mặc định - nó cho phép đồng thời tối đa cho sự lựa chọn thuật toán của bạn. nó cho phép đọc và ghi đồng thời nếu được hỗ trợ. Nếu không, nó chỉ cho phép đọc đồng thời. Nếu điều đó cũng không được hỗ trợ, nó sẽ thực thi quyền truy cập độc quyền.
  • không có - nếu được hỗ trợ, thì bạn có thể đọc và ghi đồng thời. Nếu không, MySQL sẽ báo lỗi.
  • shared - nếu tuỳ chọn chia sẻ được hỗ trợ, bạn có thể đọc đồng thời, nhưng không ghi đồng thời.
  • độc quyền - tùy chọn này thực thi quyền truy cập độc quyền

Phần thưởng đọc:MySQL DROP COLUMN

Ví dụ về MySQL DROP UNIQUE CONSTRAINT

Giả sử bạn có bảng sau với ràng buộc duy nhất.

mysql> create table orders(order_id int primary key,
     order_date date,
     product varchar(255),
     sale int,
     constraint name unique (product)
     );

Đây là truy vấn SQL để loại bỏ tên ràng buộc duy nhất từ bảng đơn đặt hàng .

mysql> DROP INDEX name ON orders;

Phần thưởng đọc:BẢNG DROP của MySQL

Chỉ mục KHÓA CHÍNH CỦA MySQL DROP

Vì khóa chính cũng là một ví dụ về ràng buộc duy nhất trên bảng, đây là cú pháp để loại bỏ ràng buộc khóa chính đối với các thứ tự trong bảng.

mysql> DROP INDEX `PRIMARY` ON orders;

Trong trường hợp này, chúng tôi gọi trường khóa chính là `PRIMARY` thay vì sử dụng tên trường.

Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao chỉ có thể có một cột TIMESTAMP với CURRENT_TIMESTAMP trong mệnh đề DEFAULT?

  2. count (*) và count (column_name), sự khác biệt là gì?

  3. Tạo chuỗi 8 ký tự ngẫu nhiên và duy nhất bằng MySQL

  4. Cách đổi tên cơ sở dữ liệu MySQL

  5. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 8.04 (Hardy)