Mysql
 sql >> база данни >  >> RDS >> Mysql

Дублиране, копиране или архивиране на таблици в MySQL, MariaDB, Oracle, PostgreSQL, DB2 и SQLite със Създаване на таблица като SQL

В системата за бази данни Oracle, PostgreSQL, DB2, MySQL, MariaDB и SQLite има приятна командна функция, наречена Създаване на таблица като което позволява лесно дублиране на таблица с данни от друга или няколко други таблици. SQL командата може също да се използва за „копиране и поставяне“ на таблица точно или архивиране на данни от таблица, преди да се извърши заявка за манипулиране на данни в оригиналната таблица, само в случай, че скриптът има грешка и датата на архивиране може да се използва за възстановяване до първоначалното състояние . Създаване на таблица като will създава нова таблица, изградена от съдържанието на набор от данни или набор от резултати, извлечен от Select SQL заявка от таблица, която вече съществува в базата данни.

Синтаксисът на оператора Create Table As SQL е:

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

Заменете table_name с името на новата таблица, която ще бъде създадена. Името на колоната е по избор, където можете да посочите няколко колони, като включите имената им в списък, разделен със запетая. В противен случай структурата на новата таблица ще се основава на имената на колоните, типовете и броя на колоните, върнати от оператора Select, заедно с данните за редовете. Ако посочите името на колоната, имайте предвид, че трябва да има същия брой посочени колони, както се връщат от select.

Инструкцията select в края на командата create table as трябва да е валидна и да има избрани цели, съответстващи на броя на колоните в списъка с колони по избор, предхождащ клаузата AS. Това може да бъде сложен оператор за избор, който извлича данни от множество таблици. Ако списъкът с колони по избор е посочен в скоби, звездичка (*) вече не може да се използва в оператора select.

Например,

CREATE TABLE demo_backup
AS SELECT * FROM demo;

По-горе SQL израз ще създаде точна копия на таблица за архивиране с име demo_backup с данни и структура (колони) на демонстрационната таблица.

Възможна грешка, ако посочите списъка с колони по избор, е:

ГРЕШКА:CREATE TABLE/AS SELECT има несъответстващ брой колони

Ако срещнете това съобщение за грешка, това се дължи на това, че незадължителният списък с колони в скоби съдържа различен брой редове от този, който връща операторът select. Проверете два пъти дали посоченият брой колони е същият с резултатите, които се очакват от избрания набор от резултати.

Забележка:Някои системи за бази данни поддържат синтаксис CREATE TABLE ... LIKE, който създава празна таблица въз основа на дефиницията на друга таблица, включително всички атрибути на колона и индекси, дефинирани в оригиналната таблица. Разликата е, че синтаксисът CREATE TABLE ... SELECT също копира данните.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_DEPTH() – Намерете максималната дълбочина на JSON документ в MySQL

  2. Открийте дали стойността е число в MySQL

  3. Как да изтриете MySQL запис след определено време

  4. PHP mysql търси множество таблици с помощта на ключова дума

  5. Зареждане на .sql файлове от PHP