Thay đổi cột MySQL

Tìm hiểu cách đổi tên cột trong cơ sở dữ liệu MySQL một cách an toàn bằng công cụ đa tính năng phổ biến – dbForge Studio cho MySQL

Để diễn giải Heraclitus, hằng số duy nhất là thay đổi. Điều đó cũng liên quan đến cơ sở dữ liệu. Theo thời gian, các yêu cầu kinh doanh thay đổi buộc quy trình phát triển cơ sở dữ liệu phải thích ứng. Do đó, các nhà phát triển cơ sở dữ liệu ngày càng phải đối mặt với sự cần thiết phải thực hiện tái cấu trúc cơ sở dữ liệu theo cấu trúc – đổi tên các cột, bảng và\hoặc dạng xem với mục đích tăng khả năng đọc mã hoặc áp dụng các quy ước đặt tên cơ sở dữ liệu

Các chủ đề sau sẽ được đề cập trong bài viết này






Thay đổi cột MySQL

Cách đổi tên cột trong MySQL bằng lệnh ALTER TABLE

Để đổi tên một cột trong MySQL, cú pháp sau được sử dụng

ALTER TABLE table_name 
RENAME COLUMN old_column_name TO new_column_name;

Lệnh này dùng để đổi tên cột thành tên cột mới. Tuy nhiên, đổi tên cột theo cách này bạn có nguy cơ phá vỡ các phụ thuộc cơ sở dữ liệu. Và hậu quả của những thay đổi tưởng chừng như đơn giản lại có thể là thảm họa. Do đó, tốt hơn là sử dụng công cụ tái cấu trúc cơ sở dữ liệu cho phép bạn thay đổi tên của bất kỳ đối tượng cơ sở dữ liệu nào trong cơ sở dữ liệu của mình. Tất cả các tham chiếu và tập quán của tên sẽ được cập nhật tự động

Cách đổi tên cột trong MySQL với sự trợ giúp của dbForge Studio cho MySQL

dbForge Studio cho MySQL là GUI đa chức năng để quản lý cơ sở dữ liệu MySQL. Nó kết hợp Công cụ tái cấu trúc cơ sở dữ liệu MySQL mạnh mẽ cho phép bạn tự do đổi tên các đối tượng cơ sở dữ liệu và cải thiện thiết kế cơ sở dữ liệu của mình với thời gian và công sức tối thiểu

Làm theo các bước sau để đổi tên cột trong dbForge Studio cho MySQL

Bước 1. Chọn một cột để đổi tên

Trong cây Database Explorer, điều hướng đến cột bạn muốn đổi tên. Sau đó nhấp chuột phải vào nó và chọn lệnh Đổi tên từ menu ngữ cảnh xuất hiện

Thay đổi cột MySQL

Bước 2. Thay đổi tên cột và xem trước các thay đổi

Bây giờ, nhập tên cột mới và nhấn Enter. Cửa sổ Xem trước Thay đổi sẽ mở ra. Kiểm tra các thay đổi mã để đảm bảo rằng các thay đổi là chính xác. Nhấp vào Áp dụng nếu mọi thứ đều ổn

Ghi chú.
Ở giai đoạn này, bạn có thể chọn tìm kiếm các phụ thuộc trong toàn bộ cơ sở dữ liệu và/hoặc tạo tập lệnh đổi tên bảng mà không cần cập nhật cơ sở dữ liệu. Nhấp vào hộp kiểm tương ứng nếu cần.

Thay đổi cột MySQL

Đổi tên các cột khóa ngoại trong MySQL

Khi đổi tên cột, bạn luôn phải lo lắng về các tham chiếu sử dụng khóa ngoại – nếu bạn đổi tên cột theo cách thủ công (ví dụ: sử dụng bảng thay đổi MySQL – câu lệnh đổi tên cột), các phần phụ thuộc này sẽ bị mất hoặc bạn sẽ phải tìm tất cả . dbForge Studio dành cho MySQL giúp bạn tránh được rắc rối. Công cụ này sẽ tìm thấy tất cả các khóa ngoại và sẽ áp dụng tên cột mới trong cơ sở dữ liệu của bạn

Đổi tên cột trong chế độ xem MySQL

Điều khá phổ biến là cột bạn cần đổi tên được sử dụng trong dạng xem. Trong trường hợp bạn chỉ đổi tên cột, bạn sẽ gặp lỗi khi chọn dữ liệu cho chế độ xem đó. Để tránh điều này, bạn sẽ phải cập nhật tất cả các dạng xem sử dụng cột đã đổi tên sau khi bạn thực sự đổi tên nó. Nhưng giờ đây dbForge Studio dành cho MySQL có thể giúp bạn tiết kiệm thời gian. Công cụ này sẽ tự động cập nhật tất cả các dạng xem và ngữ nghĩa thông tin và hành vi của cơ sở dữ liệu sẽ được giữ lại

Lệnh ALTER trong MySQL rất hữu ích khi bạn muốn thay đổi tên của bảng, bất kỳ trường nào của bảng hoặc nếu bạn muốn thêm hoặc xóa một cột hiện có trong bảng

Chúng ta hãy bắt đầu với việc tạo một bảng có tên testalter_tbl

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> create table testalter_tbl
   -> (
   -> i INT,
   -> c CHAR(1)
   -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field |  Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
|   i   | int(11) | YES  |     |   NULL  |       |
|   c   | char(1) | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Xoá, thêm hoặc định vị lại một cột

Nếu bạn muốn xóa một cột i hiện có khỏi bảng MySQL ở trên, thì bạn sẽ sử dụng mệnh đề DROP cùng với lệnh ALTER như hình bên dưới -

mysql> ALTER TABLE testalter_tbl  DROP i;

Mệnh đề DROP sẽ không hoạt động nếu cột là cột duy nhất còn lại trong bảng

Để thêm một cột, hãy sử dụng THÊM và chỉ định định nghĩa cột. Câu lệnh sau khôi phục cột i thành testalter_tbl −

mysql> ALTER TABLE testalter_tbl ADD i INT;

Sau khi đưa ra câu lệnh này, trình kiểm tra sẽ chứa hai cột giống như khi bạn tạo bảng lần đầu tiên, nhưng sẽ không có cùng cấu trúc. Điều này là do có các cột mới được thêm vào cuối bảng theo mặc định. Vì vậy, mặc dù ban đầu tôi là cột đầu tiên trong mytbl, nhưng bây giờ nó là cột cuối cùng

mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field |  Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
|   c   | char(1) | YES  |     |   NULL  |       |
|   i   | int(11) | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)

Để cho biết rằng bạn muốn một cột ở một vị trí cụ thể trong bảng, hãy sử dụng FIRST để biến cột đó thành cột đầu tiên hoặc SAU KHI col_name để cho biết rằng cột mới sẽ được đặt sau col_name

Hãy thử các câu lệnh ALTER TABLE sau, sử dụng SHOW COLUMNS sau mỗi câu lệnh để xem mỗi câu lệnh có tác dụng gì −

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;

Các chỉ định FIRST và AFTER chỉ hoạt động với mệnh đề ADD. Điều này có nghĩa là nếu bạn muốn định vị lại một cột hiện có trong một bảng, trước tiên bạn phải DROP nó và sau đó THÊM nó vào vị trí mới

Thay đổi (Thay đổi) Định nghĩa Cột hoặc Tên

Để thay đổi định nghĩa của cột, hãy sử dụng mệnh đề MODIFY hoặc CHANGE cùng với lệnh ALTER

Ví dụ: để thay đổi cột c từ CHAR(1) thành CHAR(10), bạn có thể sử dụng lệnh sau –

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Với CHANGE, cú pháp hơi khác một chút. Sau từ khóa CHANGE, bạn đặt tên cho cột muốn thay đổi, sau đó chỉ định định nghĩa mới, bao gồm tên mới

Hãy thử ví dụ sau -

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

Nếu bây giờ bạn sử dụng CHANGE để chuyển đổi j từ BIGINT trở lại INT mà không thay đổi tên cột, câu lệnh sẽ như bên dưới:

________số 8

Ảnh hưởng của ALTER TABLE đối với các thuộc tính giá trị không và giá trị mặc định − Khi bạn SỬA ĐỔI hoặc THAY ĐỔI một cột, bạn cũng có thể chỉ định cột đó có thể chứa giá trị NULL hay không và giá trị mặc định của nó là gì. Trên thực tế, nếu bạn không làm điều này, MySQL sẽ tự động gán giá trị cho các thuộc tính này

Khối mã sau đây là một ví dụ, trong đó cột NOT NULL sẽ có giá trị là 100 theo mặc định

mysql> ALTER TABLE testalter_tbl 
   -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Nếu bạn không dùng lệnh trên thì MySQL sẽ điền giá trị NULL vào tất cả các cột

Thay đổi (Thay đổi) Giá trị Mặc định của Cột

Bạn có thể thay đổi giá trị mặc định cho bất kỳ cột nào bằng cách sử dụng lệnh ALTER

Hãy thử ví dụ sau

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> create table testalter_tbl
   -> (
   -> i INT,
   -> c CHAR(1)
   -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field |  Type   | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
|   i   | int(11) | YES  |     |   NULL  |       |
|   c   | char(1) | YES  |     |   NULL  |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
0

Bạn có thể xóa ràng buộc mặc định khỏi bất kỳ cột nào bằng cách sử dụng mệnh đề DROP cùng với lệnh ALTER

mysql> ALTER TABLE testalter_tbl  DROP i;
0

Thay đổi (Thay đổi) một loại bảng

Bạn có thể sử dụng một loại bảng bằng cách sử dụng mệnh đề TYPE cùng với lệnh ALTER. Hãy thử ví dụ sau để thay đổi loại bảng testalter_tbl thành MYISAM

Để biết loại bảng hiện tại, hãy sử dụng câu lệnh SHOW TABLE STATUS

mysql> ALTER TABLE testalter_tbl  DROP i;
1

Đổi tên (Thay đổi) một bảng

Để đổi tên bảng, hãy sử dụng tùy chọn RENAME của câu lệnh ALTER TABLE

Hãy thử ví dụ sau để đổi tên testalter_tbl thành alter_tbl

mysql> ALTER TABLE testalter_tbl  DROP i;
2

Bạn có thể sử dụng lệnh ALTER để tạo và thả lệnh INDEX trên tệp MySQL. Chúng ta sẽ thảo luận chi tiết về lệnh này trong chương tiếp theo

Làm cách nào để đổi tên cột trong MySQL?

Để đổi tên một cột trong MySQL, sử dụng cú pháp sau. ALTER TABLE table_name RENAME COLUMN old_column_name THÀNH new_column_name ; .

Làm cách nào để thay đổi thuộc tính cột trong MySQL?

Cú pháp để sửa đổi một cột trong bảng trong MySQL (sử dụng câu lệnh ALTER TABLE) là. THAY ĐỔI BẢNG tên_bảng SỬA ĐỔI cột_tên cột_definition [ FIRST. SAU tên cột ]; . Tên của bảng để sửa đổi