sourcetip

mysqdump를 사용하여 CREATE TABLE 명령만 내보내려면 어떻게 해야 합니까?

fileupload 2023. 8. 21. 21:32
반응형

mysqdump를 사용하여 CREATE TABLE 명령만 내보내려면 어떻게 해야 합니까?

사용하려고 합니다.mysqldumpDB 스키마만 내보냅니다. 데이터, 추가 SQL 주석은 없습니다.CREATE TABLE명령을 실행합니다.제가 지금까지 알아낸 것은 다음과 같습니다.

mysqldump -h localhost -u root -p --no-data --compact  some_db

제가 원하는 것을 거의 달성하지만 "문자 집합" 행(아래 예제 출력의 처음 3줄과 같은 행)을 제거하고 싶습니다.있습니까?mysqldump그것을 할 수 있는 선택권?

/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `foo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `bar_id` int(11) DEFAULT NULL,
  `bazz` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=369348 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bar` (
...etc.

중요한 경우를 대비하여 버전 정보는 다음과 같습니다.

mysqldump Ver 10.13 Distrib 5.1.34, for Win32 (ia32)
mysql Ver 14.14 Distrib 5.1.34, for Win32 (ia32)

이것은 grep도 사용하지만, 효과가 있는 것 같습니다.

mysqldump -d --compact --compatible=mysql323 ${dbname}|egrep -v "(^SET|^/\*\!)"

사용 중:

Ver 10.11 debian-linux-gnu용 5.0.51a 배포(x86_64)

다음은 문자 집합과 AUTO_INCREMENT 없이 스키마를 덤프하는 명령입니다.

mysqldump -h localhost -u root -p --no-data  YOUR_DATABASE_HERE |egrep -v "(^SET|^/\*\!)" | sed 's/ AUTO_INCREMENT=[0-9]*\b//'

다음은 문자 집합, AUTO_INCREMENT 및 주석 없이 스키마를 덤프하는 명령입니다.

mysqldump -h localhost -u root -p --no-data --compact YOUR_DATABASE_HERE |egrep -v "(^SET|^/\*\!)" | sed 's/ AUTO_INCREMENT=[0-9]*\b//'
mysql> SHOW CREATE TABLE mytablename;
mysqldump --compact --no-set-names --skip-opt --no-data DB | sed "/ SET /d"

설명서에 언급된 --skip-comments 옵션을 사용해 보셨습니까?도움이 되나요?

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_comments

사용하다--skip-set-charset선택.

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_set-charset

언급URL : https://stackoverflow.com/questions/1842076/how-do-i-use-mysqldump-to-export-only-the-create-table-commands

반응형