테스트 사이트 - 개발 중인 베타 버전입니다

백업한 '게시물'의 SQL을 두번 넣고 싶은데, AI 값과 관련하여, wr_id 값을 자동으로 변경하는 방법이 있을까요? 채택완료

개발중2 8년 전 조회 3,648

 

기존 관리하던 그누보드 3개의 메뉴를, 1개의 메뉴로 통합하고자 합니다.

그랬더니, AI( auto_increment ) 문제에 직면하여, 도움을 부탁드립니다.

 

phpMyAdmin을 통하여 기존에 있는 SQL 백업으로, 아래와 같은 결과를 얻었습니다.

 

 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET time_zone = "+00:00";

 

 

/*!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 utf8mb4 */;

 

--

-- 테이블 구조 `g5_write_news`

--

 

CREATE TABLE `g5_write_news` (

  `wr_id` int(11) NOT NULL,

  `wr_num` int(11) NOT NULL DEFAULT '0',

  `wr_reply` varchar(10) NOT NULL,

  `wr_parent` int(11) NOT NULL DEFAULT '0',

  `wr_is_comment` tinyint(4) NOT NULL DEFAULT '0',

  `wr_comment` int(11) NOT NULL DEFAULT '0',

  `wr_comment_reply` varchar(5) NOT NULL,

  `ca_name` varchar(255) NOT NULL,

  `wr_option` set('html1','html2','secret','mail') NOT NULL,

  `wr_subject` varchar(255) NOT NULL,

  `wr_content` text NOT NULL,

  `wr_link1` text NOT NULL,

  `wr_link2` text NOT NULL,

  `wr_link1_hit` int(11) NOT NULL DEFAULT '0',

  `wr_link2_hit` int(11) NOT NULL DEFAULT '0',

  `wr_hit` int(11) NOT NULL DEFAULT '0',

  `wr_good` int(11) NOT NULL DEFAULT '0',

  `wr_nogood` int(11) NOT NULL DEFAULT '0',

  `mb_id` varchar(20) NOT NULL,

  `wr_password` varchar(255) NOT NULL,

  `wr_name` varchar(255) NOT NULL,

  `wr_email` varchar(255) NOT NULL,

  `wr_homepage` varchar(255) NOT NULL,

  `wr_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

  `wr_file` tinyint(4) NOT NULL DEFAULT '0',

  `wr_last` varchar(19) NOT NULL,

  `wr_ip` varchar(255) NOT NULL,

  `wr_facebook_user` varchar(255) NOT NULL,

  `wr_twitter_user` varchar(255) NOT NULL,

  `wr_1` varchar(255) NOT NULL,

  `wr_2` varchar(255) NOT NULL,

  `wr_3` varchar(255) NOT NULL,

  `wr_4` varchar(255) NOT NULL,

  `wr_5` varchar(255) NOT NULL,

  `wr_6` varchar(255) NOT NULL,

  `wr_7` varchar(255) NOT NULL,

  `wr_8` varchar(255) NOT NULL,

  `wr_9` varchar(255) NOT NULL,

  `wr_10` varchar(255) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

그 후에, 하단의 Insert문을 실행하였습니다.

 INSERT INTO `g5_write_news` (`wr_id`, `wr_num`, `wr_reply`, `wr_parent`, `wr_is_comment`, `wr_comment`, `wr_comment_reply`, `ca_name`, `wr_option`, `wr_subject`, `wr_content`, `wr_link1`, `wr_link2`, `wr_link1_hit`, `wr_link2_hit`, `wr_hit`, `wr_good`, `wr_nogood`, `mb_id`, `wr_password`, `wr_name`, `wr_email`, `wr_homepage`, `wr_datetime`, `wr_file`, `wr_last`, `wr_ip`, `wr_facebook_user`, `wr_twitter_user`, `wr_1`, `wr_2`, `wr_3`, `wr_4`, `wr_5`, `wr_6`, `wr_7`, `wr_8`, `wr_9`, `wr_10`) VALUES

(209, -208, '', 209, 0, 0, '', '공지', 'html1', 'Test', '

 

테스트 파일 입니다

', '', '', 0, 0, 4, 0, 0, 'admin', '*D76DC854984274EC18DDE6026E2892C65AD4838F', '관리자', 'ADMINMAIL@naver.com', '', '2017-05-05 16:52:47', 2, '2017-05-05 16:52:47', 'IP', '', '', '', '', '', '', '', '', '', '', '', '');

그 후에, 위에 굵게 칠해진 SQL 문을 1번 더 입력하였습니다. (테스트를 위함)
당연히, 전재조건은 테이블에 AI, PK를 걸지 않은 상태입니다. 
이 이후에, AI를 걸려고 하는데요.

페이지를 보니, 2개가 만들어졌는데 링크를 보니 wr_id 두개가 동일하게 되서,
데이터가 이렇게 들어가있기 때문에, wr_id와 wr_num을 다시 만들어줘야 하는 상황이 되었습니다.
(각각 다르게)
이 상태로 AI를 걸어서, 0부터 처음은 0, 나중은 1이 되었으면 하는데
저 위의 상황에서 아래와 같은 sql문을 입력하니

 

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!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 utf8mb4 */;
--
-- 테이블의 인덱스 `g5_write_news`
--
ALTER TABLE `g5_write_news`
  ADD PRIMARY KEY (`wr_id`),
  ADD KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
  ADD KEY `wr_is_comment` (`wr_is_comment`,`wr_id`);
--
-- 테이블의 AUTO_INCREMENT `g5_write_news`
--
ALTER TABLE `g5_write_news`
  MODIFY `wr_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=210;
/*!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 */;

 

 


 

 

이런 오류가 발생하더라고요.
보니까 이미 wr_id가 '1'인게 (사진에는 나와있지 않지만 데이터가 1부터 209까지 3번씩 들어가있다고 보시면 됩니다)
2개 이상이라서, PRIMARY 에 걸린다 <- 라는 뜻 같은데,
현재 wr_id를 무시하고, 0부터 있는 갯수만큼 자동으로  ai를 해주는 방법이 있을까요?
댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
8년 전

wr_id와 wr_num을 다시 만들어줘야 하는 상황이 되었습니다.

<--- 게시물 순서를 어덯게 나오게 하려는지 모르겠으나 wr_id, wr_num, wr_parent 모두 다시만들어 주어야 합니다

phpMyadmin에서 하는 것보다 아래 방법을 이용하세요

(다른 이름으로 게시판 복사를 해서 게시판 두개를 합치는 방법으로)

g4용이므로 g5용으로 수정해야 합니다

https://sir.kr/g4_tiptech/32643?sfl=mb_id%2C1&stx=kt7264">https://sir.kr/g4_tiptech/32643?sfl=mb_id%2C1&stx=kt7264

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인