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

MySQL DROP COLUMN

Đôi khi bạn có thể cần xóa cột khỏi bảng cơ sở dữ liệu trong MySQL. Bạn có thể dễ dàng thực hiện việc này bằng lệnh MySQL DROP COLUMN. Đây là cách bỏ cột khỏi bảng trong MySQL.

Cách thả cột khỏi bảng trong MySQL

Dưới đây là các bước để bỏ cột khỏi bảng trong MySQL. Chúng tôi sẽ sử dụng truy vấn MySQL DROP COLUMN để xóa các cột hiện có khỏi bảng.

Đây là cú pháp của câu lệnh DROP COLUMN:

ALTER TABLE table_name
DROP COLUMN column_name;

Trong câu lệnh trên, bạn cần đề cập đến bảng có cột bạn muốn bỏ, trong mệnh đề ALTER TABLE. Sau đó, chỉ định tên cột trong mệnh đề DROP COLUMN.

Bạn chỉ có thể sử dụng DROP, thay vì sử dụng DROP COLUMN ở trên.

Nếu bạn muốn loại bỏ nhiều cột khỏi bảng, hãy đề cập đến chúng trong các mệnh đề DROP COLUMN riêng biệt, trong cùng một câu lệnh.

ALTER TABLE table_name
DROP COLUMN column1,
DROP COLUMN column2,
DROP COLUMN column3;

Khi bạn xóa một cột khỏi bảng, tất cả các thủ tục, dạng xem và trình kích hoạt được lưu trữ tham chiếu đến cột này đều trở nên không hợp lệ. Bạn sẽ cần phải cập nhật chúng theo cách thủ công để chúng hoạt động trở lại. Bạn cũng có thể giảm cột bằng Chỉ mục nhưng chỉ mục sẽ trở nên không hợp lệ sau khi xóa cột.

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

Ví dụ về MySQL DROP COLUMN

Giả sử bạn có bảng đơn đặt hàng sau

mysql> create table orders(order_date date, 
       sale int, 
       product_id int, 
       category varchar(255));

Giả sử bạn muốn DROP COLUMN product_id

mysql> alter table orders drop column product_id;

mysql> describe orders;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| order_date | date         | YES  |     | NULL    |       |
| sale       | int(11)      | YES  |     | NULL    |       |
| category   | varchar(255) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+

Phần thưởng đã đọc:Cách lấy bản ghi ngay từ hôm nay trong MySQL

MySQL DROP Nhiều cột

Giả sử bạn muốn giảm bán hàng và danh mục nhiều cột. Đây là câu lệnh MySQL DROP COLUMN để loại bỏ nhiều cột khỏi bảng trong MySQL

mysql> alter table orders
     drop column sale,
     drop column category;

mysql> describe orders;
+------------+------+------+-----+---------+-------+
| Field      | Type | Null | Key | Default | Extra |
+------------+------+------+-----+---------+-------+
| order_date | date | YES  |     | NULL    |       |
+------------+------+------+-----+---------+-------+

Phần thưởng đã đọc:Cách nhận bản ghi từ 7 ngày qua trong MySQL

MySQL DROP COLUMN với khóa ngoại

Nếu bạn cố gắng DROP COLUMN trực tiếp bằng Khoá ngoại MySQL sẽ gặp lỗi. Giả sử bạn có các bảng sau

mysql> create table orders3(id int auto_increment primary key,category_id int);

mysql> create table categories(id int auto_increment primary key,name varchar(255));

mysql> ALTER TABLE orders3
     ADD CONSTRAINT fk_cat
     FOREIGN KEY (category_id)
     REFERENCES categories(id);

Phần thưởng đọc:Cách nhận bản ghi giữa 2 ngày trong MySQL

Trong ví dụ trên, khóa ngoại category_id trong order3 tham chiếu đến cột ID khóa chính từ bảng danh mục. Nếu bạn cố gắng xóa nó, bạn sẽ gặp lỗi.

mysql> alter table orders3 drop column category_id;
ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint

Vì vậy, trước tiên bạn cần xóa ràng buộc khóa ngoại và chỉ sau đó sử dụng MySQL DROP COLUMN

mysql> alter table orders3 drop foreign key fk_cat;

mysql> alter table orders3 drop column category_id;

mysql> describe orders3;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
+-------+---------+------+-----+---------+----------------+

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. Sự khác biệt trong MySQL JOIN so với LEFT JOIN

  2. Sử dụng tệp .php để tạo kết xuất MySQL

  3. Đang tải các tệp .sql từ bên trong PHP

  4. Sử dụng Jquery Ajax để lấy dữ liệu từ Mysql

  5. mysql_num_rows () mong đợi tham số 1 là tài nguyên, boolean được đưa vào