Hvordan replikere tabellstruktur i MySQL-database?Kopier tabelldatainnholdserklæring

Hvordan kopiere tabellstrukturen i en MySQL-database ? Hvilke setninger brukes til å kopiere tabelldata?

MySQLkopitabell

Hvis vi trenger å kopiere en MySQL-tabell fullstendig, inkludert struktur, indekser, standardverdier osv., kan ikke det gjøres bare ved å bruke kommandoen `CREATE TABLE … SELECT` .

Dette kapittelet vil introdusere hvordan du fullstendig kopierer MySQL-datatabeller, trinnene er som følger:

  • 使用VIS OPPRETT TABELLkommando få opprette datatabell (LAG TABELL)-setning, som inneholder strukturen, indeksen osv. til den opprinnelige datatabellen.
  • Kopier SQL-setningen som vises av følgende kommando, modifiser datatabellnavnet og utfør SQL-setningen. Kommandoen ovenfor vil kopiere datatabellstrukturen fullstendig.
  • Hvis du ønsker å kopiere innholdet i tabellen, kan du brukeSETTE INN I … VELG uttalelse å oppnå.

Forekomst

Prøv følgende eksempel for å replikere tabellen chenweiliang_tbl.

steg en:

Få hele strukturen til datatabellen.

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 秒) 
 
  

错误:没有指定查询

Trinn to:

Endre datatabellnavnet til SQL-setningen og utfør SQL-setningen.

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 秒) 
 
 

Trinn tre:

Etter at du har fullført det andre trinnet, oppretter du en ny klontabell med navnet clone_tbl i databasen. Hvis du vil kopiere data fra tabellen, kan du bruke INSERT INTO … SELECT -setningen.

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 

Etter å ha utført trinnene ovenfor, vil du kopiere tabellen fullstendig, inkludert tabellstrukturen og tabelldata.

En annen måte å kopiere en tabell på

En annen måte å kopiere tabellen fullstendig på:

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

andre:

Du kan kopiere noen av disse feltene i en tabell:

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

Du kan gi nytt navn til feltene i den nyopprettede tabellen:

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

En del av dataene kan kopieres:

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

Feltinformasjon i tabellen kan defineres mens du oppretter tabellen:

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

发表 评论

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

Rull til toppen