Làm thế nào để thêm ràng buộc Not Null xóa ràng buộc trong MySQL
Cách thêm ràng buộc Not Null trong MySQL
Cách thêm ràng buộc Not Null trong MySQL
Ràng buộc không null là một cách tuyệt vời để thêm một lớp xác thực khác vào dữ liệu của bạn. Chắc chắn, bạn có thể thực hiện xác thực này trong lớp ứng dụng của mình, nhưng vẫn có thể xảy ra: ai đó sẽ quên thêm xác thực, ai đó sẽ vô tình xóa nó, ai đó sẽ bỏ qua xác thực trong bảng điều khiển và chèn giá trị null, v.v. Cách duy nhất để thực sự chắc chắn là áp dụng nó trong định nghĩa cột của bạn. Nếu bạn cũng đang xác thực giá trị null trên lớp cơ sở dữ liệu, bạn sẽ được bảo vệ ????
Để áp dụng NOT NULLcho một cột trong MySQL, bạn sử dụng ALTER TABLE .... MODIFY
lệnh và nêu lại định nghĩa cột, thêm NOT NULL
thuộc tính.
--Example: Products have a default stock of 0
ALTER TABLE products MODIFY stocks INT NOT NULL;
Lưu ý rằng bạn PHẢI nêu lại định nghĩa cột đầy đủ, nếu không các thuộc tính chưa khai báo sẽ trở về cài đặt mặc định. Ví dụ, không nêu lại mệnh đề DEFAULT
sẽ bỏ giá trị mặc định.
Để đảm bảo bạn không bỏ sót bất cứ thông tin nào, bạn có thể sử dụng SHOW CREATE TABLE
lệnh để xem định nghĩa đầy đủ của cột:
mysql> SHOW CREATE TABLE products\G
*************************** 1. row ***************************
Table: products
Create Table: CREATE TABLE `products` (
`product_id` bigint(20) NOT NULL,
`product_name` varchar(100) DEFAULT '',
`stocks` int(11) DEFAULT '0',
(The rest of the output is truncated for brevity)
Sử dụng định nghĩa hiện tại và thêm vào NOT NULLđể có sửa đổi chính xác:
ALTER TABLE products MODIFY stocks INT NOT NULL DEFAULT 0;
Cách xóa ràng buộc Not Null trong MySQL
Cách xóa ràng buộc Not Null
trong MySQL Để xóa ràng NOT NULL
buộc cho một cột trong MySQL, bạn sử dụng ALTER TABLE .... MODIFY
lệnh và nêu lại định nghĩa cột, xóa NOT NULL
thuộc tính.
--Example: Products have a default stock of 0
ALTER TABLE products MODIFY stocks INT;
Lưu ý rằng bạn PHẢI nêu lại định nghĩa cột đầy đủ, nếu không các thuộc tính chưa khai báo sẽ trở về cài đặt mặc định. Ví dụ, không nêu lại mệnh đề DEFAULT
sẽ bỏ giá trị mặc định.
Để đảm bảo bạn không bỏ sót bất cứ thông tin nào, bạn có thể sử dụng SHOW CREATE TABLE
lệnh để xem định nghĩa đầy đủ của cột:
mysql> SHOW CREATE TABLE products\G
*************************** 1. row ***************************
Table: products
Create Table: CREATE TABLE `products` (
`product_id` bigint(20) NOT NULL,
`product_name` varchar(100) DEFAULT '',
`stocks` int(11) NOT NULL DEFAULT '0',
(The rest of the output is truncated for brevity)
Sử dụng định nghĩa hiện tại và xóa NOT NULL để có sửa đổi chính xác:
ALTER TABLE products MODIFY stocks INT DEFAULT 0;
Cách xóa chỉ mục trong MySQL
Cách xóa một chỉ mục trong MySQL bằng lệnh Drop Index và Alter Table
Để xóa một chỉ mục không phải khóa chính, hãy sử dụng DROP INDEX
lệnh:
DROP INDEX index_name ON table_name;
Cú pháp yêu cầu phải chỉ định tên bảng vì MySQL cho phép sử dụng lại tên chỉ mục trên nhiều bảng.
Khóa chính trong MySQL luôn được đặt tên PRIMARY
(không phân biệt chữ hoa chữ thường). Nhưng vì PRIMARY
là từ khóa được dành riêng nên cần có dấu ngoặc kép khi bạn sử dụng nó trong DROP INDEX
lệnh.
--Enclose PRIMARY in backticks to refer to the name, not the reserved word
DROP INDEX `PRIMARY` ON table_name;
Ngoài ra, MySQL cũng cho phép xóa chỉ mục bằng ALTER TABLE
lệnh:
-- Drop a non-primary key index
ALTER TABLE table_name DROP INDEX index_name;
-- Drop the primary key. This time we are using the reserved words so no backticks
ALTER TABLE table_name DROP PRIMARY KEY;