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

Nhân bản, sao chép hoặc sao lưu bảng trong MySQL, MariaDB, Oracle, PostgreSQL, DB2 và SQLite với Tạo bảng dưới dạng SQL

Trong hệ thống cơ sở dữ liệu Oracle, PostgreSQL, DB2, MySQL, MariaDB và SQLite, có một tính năng lệnh hay được gọi là Tạo bảng dưới dạng cho phép dễ dàng sao chép một bảng với dữ liệu từ một hoặc một vài bảng khác. Lệnh SQL cũng có thể được sử dụng để 'sao chép và dán' chính xác bảng hoặc sao lưu dữ liệu bảng trước khi thực hiện truy vấn thao tác dữ liệu trên bảng gốc, đề phòng trường hợp tập lệnh có lỗi và ngày sao lưu có thể được sử dụng để khôi phục về trạng thái ban đầu . Tạo bảng dưới dạng sẽ tạo một bảng mới được xây dựng từ nội dung của tập dữ liệu hoặc tập kết quả được truy xuất bằng Chọn Truy vấn SQL từ một bảng đã tồn tại trong cơ sở dữ liệu.

Cú pháp của câu lệnh Create Table As SQL là:

CREATE TABLE table_name [ ( column_name [, ...] ) ]
             AS select [ * ! ( column_name [, ...] ) ] FROM source_table_name

Thay thế tên_bảng bằng tên của bảng mới sẽ được tạo. Tên cột là tùy chọn, nơi bạn có thể chỉ định nhiều cột bằng cách đưa tên của chúng vào danh sách được phân tách bằng dấu phẩy. Ngoài ra, cấu trúc của bảng mới sẽ dựa trên tên cột, loại và số lượng cột được trả về bởi câu lệnh Chọn, cùng với dữ liệu hàng. Nếu bạn chỉ định tên cột, hãy lưu ý rằng phải có cùng số cột được chỉ định như được trả về bởi select.

Câu lệnh select ở cuối lệnh create table as phải hợp lệ và có số lượng mục tiêu được chọn khớp với số cột trong danh sách cột tùy chọn trước mệnh đề AS. Nó có thể là một câu lệnh select phức tạp lấy dữ liệu từ nhiều bảng. Nếu danh sách cột tùy chọn được chỉ định trong dấu ngoặc đơn, dấu hoa thị (*) không còn được sử dụng trong câu lệnh select nữa.

Ví dụ:

CREATE TABLE demo_backup
AS SELECT * FROM demo;

Câu lệnh SQL trên sẽ tạo một bảng sao lưu chính xác có tên demo_backup với dữ liệu và cấu trúc (cột) của bảng demo.

Lỗi có thể xảy ra nếu bạn chỉ định danh sách cột tùy chọn là:

LỖI:CREATE TABLE / AS SELECT có số lượng cột không khớp

Nếu bạn gặp phải thông báo lỗi này, điều này là do danh sách tùy chọn của các cột trong dấu ngoặc đơn chứa một số lượng hàng khác với câu lệnh select trả về. Kiểm tra kỹ xem số cột được chỉ định có giống với kết quả mong đợi từ tập kết quả đã chọn hay không.

Lưu ý Một số hệ thống cơ sở dữ liệu hỗ trợ cú pháp CREATE TABLE… LIKE tạo một bảng trống dựa trên định nghĩa của một bảng khác, bao gồm bất kỳ thuộc tính cột và chỉ mục nào được xác định trong bảng gốc. Sự khác biệt là cú pháp CREATE TABLE… SELECT cũng sao chép dữ liệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CONVERT_TZ ()

  2. Làm cách nào để nhập tệp CSV vào bảng MySQL?

  3. UnicodeEncodeError:codec 'latin-1' không thể mã hóa ký tự

  4. Định dạng ngày MySQL - những điều bạn cần biết

  5. Cách sử dụng các vai trò đã thay đổi trong MySQL 8.0