phpmyadmin에서 기존 테이블에 대한 테이블 생성 스크립트를 생성하는 방법은 무엇입니까?


246

phpmyadmin에서 기존 테이블에 대한 테이블 생성 스크립트를 생성하려면 어떻게해야합니까?

답변:


513

SQL 탭에서 다음 쿼리를 사용하십시오.

SHOW CREATE TABLE tablename

전체 쿼리를 보려면 위의 + Options라는 하이퍼 링크가 있습니다. 전체 텍스트를 선택하십시오.


1
예를 들어 동일한 테이블 이름을 포함하는 여러 데이터베이스가있는 경우 어떤 데이터베이스를 지정하는 방법이 있습니까? 아니면 불가능합니까?
다 보스

6
@Davos는 이것을 사용하여 create create database_name.tablename 테이블을 보여줍니다.
Fahad Anjum

고마워, 이것이 내가 원하는 것
astrosixer

파일로 내보내기 위해 추가 할 수있는 인수가 있습니까?
댄.

40

SHOW CREATE TABLE <table name>쿼리를 실행하십시오 .


4
+1. 참고 : 명령 줄에서 쿼리를 실행하는 경우 ;끝에가 필요합니다.
원천 징수

15

Mysqladmin은 테이블 생성 스크립트를 저장하는 작업을 수행 할 수 있습니다.

1 단계, 테이블을 만들고 행을 삽입하십시오.

create table penguins (id int primary key, myval varchar(50))
insert into penguins values(2, 'werrhhrrhrh')
insert into penguins values(25, 'weeehehehehe')
select * from penguins

2 단계 : mysql dump 명령을 사용하십시오.

mysqldump --no-data --skip-comments --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

3 단계 : penguins.sql의 출력을 관찰하십시오.

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `penguins`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

출력은 위와 아래의 여러 실행 조건 토큰에 의해 복잡해집니다. 다음 단계에서 원하지 않으면 필터링 할 수 있습니다.

4 단계 (선택 사항)에서 이러한 추가 실행 조건 토큰을 다음과 같이 필터링하십시오.

mysqldump --no-data --skip-comments --compact --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql

최종 출력을 생성합니다.

eric@dev /home/el $ cat penguins.sql

DROP TABLE IF EXISTS `penguins`;
CREATE TABLE `penguins` (
  `id` int(11) NOT NULL,
  `myval` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

9

쿼리 실행은 SQL 탭입니다

CREATE TABLE 테이블 이름 표시

클릭

+ 옵션-> 전체 텍스트 선택-> 이동을 클릭하십시오.

Create Table 쿼리를 복사하고 새 테이블을 만들 위치에 붙여 넣습니다.


전문을 표시하는 데 대한 팁을 주셔서 감사합니다. 귀하의 답변을 볼 때까지 왜 그 내용이 잘리지 않았는지 확실하지 않았습니다.
Dymas

@Dymas 전체 쿼리를 표시하려면 전체 텍스트를 선택해야합니다. 전체 쿼리를 보려면 동일한 작업을 수행했습니다.
Samir Mangroliya

7

information_schema.columns를 직접 쿼리하십시오.

select * from information_schema.columns 
where table_name = 'your_table' and table_schema = 'your_database'

2

답장이 늦을 수 있습니다. 그러나 다른 사람들에게 도움이 될 수 있습니다. MY SQL Workbench에서 매우 간단합니다 (Workbench 버전 6.3 및 My SQL Version 5.1 Community Edition을 사용하고 있습니다). 스크립트 작성하려는 테이블을 마우스 오른쪽 단추로 클릭하고 '클립 보드에 복사-> 명령문 작성'옵션을 선택하십시오. 작성 스크립트를 가져 오려는 텍스트 편집기에 붙여 넣기 만하면됩니다.


0

PHP 함수 사용하기.

물론 쿼리 기능 ($ this-> model)은 자신의 것으로 변경해야합니다.

/**
 * Creating a copy table based on the current one
 * 
 * @param type $table_to_copy
 * @param type $new_table_name
 * @return type
 * @throws Exception
 */
public function create($table_to_copy, $new_table_name)
{
    $sql = "SHOW CREATE TABLE ".$table_to_copy;

    $res = $this->model->queryRow($sql, PDO::FETCH_ASSOC);

    if(!filled($res['Create Table']))
        throw new Exception('Could not get the create code for '.$table_to_copy);

    $newCreateSql = preg_replace(array(
        '@CREATE TABLE `'.$table_to_copy.'`@',
        '@KEY `'.$table_to_copy.'(.*?)`@',
        '@CONSTRAINT `'.$table_to_copy.'(.*?)`@',
        '@AUTO_INCREMENT=(.*?) @',
    ), array(
        'CREATE TABLE `'.$new_table_name.'`',
        'KEY `'.$new_table_name.'$1`',
        'CONSTRAINT `'.$new_table_name.'$1`',
        'AUTO_INCREMENT=1 ',
    ), $res['Create Table']);

    return $this->model->exec($newCreateSql);
}

0

SQL 파일에서 테이블을 내보내는 다른 방법을 찾았습니다.

내 테이블이 abs_item_variations

abs_item_variations ->structure -> propose table structure -> export -> Go

0

전체 데이터베이스 선택 형식을 SQL로 내 보냅니다. 이제 메모장, notepad ++ 또는 편집기를 사용하여 다운로드 한 SQL 파일을여십시오. 데이터베이스의 모든 테이블과 삽입 쿼리가 표시됩니다. 모든 스크립트를 사용할 수 있습니다.


-2

한 가지 더 phpMyAdmin의 왼쪽 패널에서 대상 테이블을 선택하고 내보내기 탭을 클릭하고 데이터 블록을 선택 취소 한 다음 이동 버튼을 클릭하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.