Có một tình huống khi bạn cần một bản sao thực sự của một bảng và các lệnh CREATE TABLE … SELECT … không phù hợp với mục đích của bạn, bởi vì bản sao phải bao gồm cùng chỉ mục, cùng giá trị mặc định, và …

Bạn có thể xử lý tình huống này theo các bước sau:

  • Sử dụng lệnh SHOW CREATE TABLE để lấy một lệnh CREATE TABLE mà xác định cấu trúc, chỉ mục và tất cả thông tin của bảng nguồn.

  • Sửa đổi lệnh để thay đổi tên bảng thành tên một bảng mô phỏng và thực thi lệnh. Theo cách này, bạn sẽ có bảng mô phỏng thực sự.

  • Tùy ý, nếu bạn cần sao các nội dung bảng, bạn thông báo một lệnh INSERT INTO … SELECT.

Ví dụ

Bạn thử ví dụ sau để tạo một bảng mô phỏng cho sinhvienk60:

Bước 1:

Lấy toàn bộ cấu trúc của bảng với lệnh SHOW CREATE TABLE ten_bang;:

SHOW CREATE TABLE sinhvienk60;

Khi bạn đang làm việc trên MySQL Workbench thì lệnh trên sẽ trả về một hàng, bạn có thể nhấn chuột phải vào hàng này và lựa chọn các tùy chọn Copy, sau đó dán vào phần bạn đang làm việc, kết quả là:

CREATE TABLE `sinhvienk60` (
  `mssv` int(11) NOT NULL AUTO_INCREMENT,
  `ho` varchar(255) NOT NULL,
  `ten` varchar(255) NOT NULL,
  `diemthi` float(4,2) NOT NULL,
  PRIMARY KEY (`mssv`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

Bước 2:

Thay tên bảng này và tạo bảng khác.

CREATE TABLE `sinhvienk61` (
  `mssv` int(11) NOT NULL AUTO_INCREMENT,
  `ho` varchar(255) NOT NULL,
  `ten` varchar(255) NOT NULL,
  `diemthi` float(4,2) NOT NULL,
  PRIMARY KEY (`mssv`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

Bước 3:

Sau khi thực thi bước 2, bạn sẽ mô phỏng một bảng trong Database. Nếu bạn muốn sao chép dữ liệu từ bảng cũ, thì bạn có thể thực hiện bằng việc sử dụng lệnh INSERT INTO … SELECT.

INSERT INTO sinhvienk61 (mssv, ho, ten, diemthi)
      SELECT mssv, ho, ten, diemthi FROM sinhvienk60;

Cuối cùng, bạn sẽ có bảng mô phỏng thực sự như bạn muốn có.

Các bài học MySQL phổ biến khác tại s2sontech:




Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Learning English Everyday