2011-04-14 5 views
1

id int auto_increment 열이 기본 키 역할을하는 reports 테이블이 있다고 가정합니다. 데이터베이스 B가 끝낼 않습니다auto_increment 열이있는 테이블에 덤프 파일을로드하는 경우 어떻게됩니까?

drop tablecreate table 지시 파일에이 표가 추가 I mysqldump 경우

하고 난 그냥 좋아하지만 최신 reports 기록의 일부를 누락 다른 데이터베이스 B에로드, 데이터베이스 A의 reports 테이블의 정확한 사본?

drop tablecreate table 명령어가 누락 된 경우 어떻게됩니까?

답변

0

auto_increment 열의 데이터는있는 그대로 보존됩니다.

단일 테이블에 mysqldump를 수행하고 열을 삽입하는 방법을 확인하십시오.

또한 각 테이블의 테이블 정의는 이전 값이 VALUES 목록에 포함되어있는 동안 다음 auto_increment 값을 유지합니다. 다음은 샘플입니다.

mysql> create database test;
쿼리 OK, 1 행의 영향 (0.06 초)

의 MySQL> 사용 시험
데이터베이스 변경
의 MySQL> 테이블 TB (이름 char (10), 아이디 INT NOT NULL AUTO_INCREMENT 기본 키) ENGINE =의 MyISAM을 만들 ;
쿼리 확인, 0 행이 영향 (0.13 초)

MySQL의> TB (이름) 값 ('요'), ('마리아'), ('요셉')에 삽입;
쿼리 OK 3 열의 영향 (0.05 초)
기록 : 3 중복 : 0 경고 : 0

의 MySQL> TB * FROM;
+ -------- + ---- +
| 이름 | 이드 |
+ -------- + ---- +
| 존 | 1 |
| 메리 | 2 |
| 요셉 | 3 |
+ -------- + ---- + 세트
3 행 (0.03 초) 여기서

I 테스트 데이터베이스 mysqldump를 수행

하고는 제조 무엇인가

DROP TABLE EXIFTS가있는 경우 tb;
/*! 40101 SET @saved_cs_client = @@ character_set_client /;
/
! 40101 SET character_set_client = utf8 * /; TABLE tb CREATE
(
name 숯 (10) 초기 NULL을
id INT (11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
) ENGINE =의 MyISAM AUTO_INCREMENT = 4 DEFAULT CHARSET = 라틴;
/*!40101 SET character_set_client = @saved_cs_client * /;

-
- 테이블 덤핑 데이터 tb
-

의 LOCK TABLES tb WRITE;
/*! 40000 변경 테이블 tb 해제 키 /;
INSERT INTO tb VALUES ('John', 1), ('Mary', 2), ('Joseph', 3);
/
! 40000 변경 테이블 tb 유효화 키 /;
UNLOCK TABLES;
/
! 40103 SET TIME_ZONE = @ OLD_TIME_ZONE * /;

사용해보기 !!!

0

mysqldump를 사용하는 경우. 테이블 작성 정의는 덤프가 발생할 때의 값을 AUTO_INCREMENT 값으로 설정합니다. 덤프를 가져올 때 INSERT 문은 새 테이블에 삽입 할 값을 지정합니다. 드롭은/TABLE 문이 있어야 AUTO_INCREMENT 값을 누락 만드는 경우

무엇이든 마지막에 삽입 기록은 당신이 그들에 NULL를 삽입 할 경우에만 자동으로 값을 설정 + 1

0

자동 증가 필드했다.
그렇지 않으면 사용자가 입력 한 값을 사용합니다.

(단, unique, primary 키 등을 발생시키지 않는 다른 제한 사항은 없음).

관련 문제