SQL - Copy Table

In SQL, you can copy the structure and data from one table to another using the INSERT INTO SELECT statement. This allows you to create a new table with the same structure and data as an existing table. 

INSERT INTO new_table (column1, column2, ...) SELECT column1, column2, ... FROM existing_table;
  • new_table: Specify the name of the new table where you want to copy the data.
  • column1, column2, ...: List the columns you want to copy from the existing table to the new table. If you want to copy all columns, you can use an asterisk (*) instead.
  • existing_table: Specify the name of the existing table from which you want to copy the data.

For example, let's say you have an existing table named "Customers" with columns "CustomerID", "FirstName", and "LastName". To copy the structure and data from the "Customers" table to a new table named "CustomersCopy", you would use the following statement:

INSERT INTO CustomersCopy (CustomerID, FirstName, LastName)
SELECT CustomerID, FirstName, LastName
FROM Customers;

Executing this statement will create a new table called "CustomersCopy" with the same structure and data as the "Customers" table. The columns "CustomerID", "FirstName", and "LastName" will be copied from the "Customers" table to the "CustomersCopy" table.

Keep in mind that the new table should not already exist, or else the copy operation will fail. Also, ensure that the column names and data types in the new table match those of the existing table to avoid any errors.

It's important to note that the INSERT INTO SELECT statement copies the data from one table to another, but it does not create any constraints, indexes, or triggers associated with the original table. If you need to copy those as well, you would need to define them separately in the new table.