Cum se reproduc structura tabelului în baza de date MySQL?Copiați declarația de conținut a datelor din tabel

Cum se copiază structura unui tabel într- o bază de date MySQL ? Ce instrucțiuni se folosesc pentru a copia datele dintr-un tabel?

MySQLCopiați tabelul

Dacă trebuie să copiem complet un tabel MySQL, inclusiv structura, indexurile, valorile implicite etc., acest lucru nu se poate realiza pur și simplu folosind comanda `CREATE TABLE … SELECT` .

Acest capitol va prezenta cum să copiați complet tabelul de date MySQL, pașii sunt următorii:

  • utilizareAFIȚI CREATE TABLEcomanda get create datatable (CREAȚI TABEL), care conține structura, indexul etc. a tabelului de date original.
  • Copiați instrucțiunea SQL afișată de următoarea comandă, modificați numele tabelului de date și executați instrucțiunea SQL. Structura tabelului de date va fi copiată complet prin comanda de mai sus.
  • Dacă doriți să copiați conținutul tabelului, puteți utilizaINSERT INTO … SELECT declarație de realizat.

Instanță

Încercați următorul exemplu pentru a replica tabelul chenweiliang_tbl.

primul pas:

Obțineți structura completă a tabelului de date.

mysql > SHOW CREATE TABLE chenweiliang_tbl \ G ; *************************** 1. row ******************** ******* Table :chenweiliang_tbl
 Create Table :CREATE TABLE`chenweiliang_tbl` (`chenweiliang_id` int (11 )NOT NULL auto_increment ,`chenweiliang_title` varchar (100 )NOT NULL default '' ,'chenweiliang_author` varchar (40 )NOT NULL 默认'' ,
 
         
   
   
   
  `submission_date` 日期默认NULL ,
  PRIMARY KEY   (`chenweiliang_id` ),
  UNIQUE KEY `AUTHOR_INDEX` (`chenweiliang_author` ))ENGINE = InnoDB的1 行中集合(0.00 秒) 
 
  

错误:没有指定查询

Pasul doi:

Modificați numele tabelului de date al instrucțiunii SQL și executați instrucțiunea SQL.

mysql > CREATE TABLE`clone_tbl` (- > `chenweiliang_id` int (11 )NOT NULL auto_increment ,- > `chenweiliang_title` varchar (100 )NOT NULL default '' ,- > `chenweiliang_author` varchar (40 )NOT NULL default '' ,- > `submission_date` 日期默认为NULL ,- > PRIMARY KEY   (`chenweiliang_id` ),- > UNIQUE KEY 
    
    
    
   
  
  `AUTHOR_INDEX` (`chenweiliang_author` )- > )ENGINE = InnoDB ; 查询OK ,0 行受影响(1.80 秒) 
 
 

Pasul trei:

După finalizarea celui de-al doilea pas, veți crea în baza de date un nou tabel clonat numit clone_tbl. Dacă doriți să copiați date din tabel, puteți utiliza instrucțiunea INSERT INTO … SELECT.

mysql > INSERT INTO clone_tbl (chenweiliang_id ,- >                         chenweiliang_title ,- >                         chenweiliang_author ,- >                         submission_date )- > SELECT chenweiliang_id ,chenweiliang_title ,- >         chenweiliang_author ,submission_date
     - > FROM chenweiliang_tbl ; 查询OK ,3 行受影响(0.07 秒)记录:3 重复:0
    
    
    
    
    
 
      警告:0 

După efectuarea pașilor de mai sus, veți avea o copie completă a tabelului, inclusiv structura tabelului și datele tabelului.

Un alt mod de a copia un tabel

O altă modalitate de a face o copie completă a tabelului:

CREATE TABLE targetTable LIKE sourceTable ; 
INSERT INTO targetTable SELECT * FROM sourceTable ;

alte:

Puteți copia unele dintre aceste câmpuri într-un tabel:

CREATE TABLE newadmin AS
 (
    SELECT用户名,密码从管理员
 )

Puteți redenumi câmpurile tabelului nou creat:

CREATE TABLE newadmin AS
 (  
    SELECT id ,username AS uname ,password AS pass FROM admin
 )

O parte din date poate fi copiată:

CREATE TABLE newadmin AS
 (
    SELECT * FROM admin WHERE LEFT (username ,1 )= 's' )  

Informațiile câmpului din tabel pot fi definite în timpul creării tabelului:

CREATE TABLE newadmin
 (
    id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
)
如
(
    SELECT * FROM admin
 )  

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Derulaţi în sus