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

sql 명령어 조건절을 이미 충족한 경우엔 더 이상 작동 않게 하려면? 채택완료

sinbi 8년 전 조회 6,047

sql_query("ALTER TABLE `g5_memo` CHANGE `me_id` `me_id` INT( 11 ) NOT NULL AUTO_INCREMENT"); 

 

 

만약, g5_memo 테이블이 위 핑크색 조건을 이미 충족한 상태라면 

더 이상 위 명령어가 작동 않게 하려면 어떻게 조건을 줘야 할까요?

 

 

파일 하나 새로 만들어 실행 후 제거해도 되는데, 걍 한 파일에 모두 넣어 처리하려고 합니다.

 

 

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

답변 5개

채택된 답변
+20 포인트

이렇게 해보세요.

</p><p>$row = sql_fetch(" show columns from g5_memo where Field='me_id' and Type='int(11)' and Extra='auto_increment' ");
if(!$row['Field']) {</p><p>    sql_query("ALTER TABLE `g5_memo` CHANGE `me_id` `me_id` INT( 11 ) NOT NULL AUTO_INCREMENT");</p><p>}</p><p>
 

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

답변에 대한 댓글 3개

s
sinbi
8년 전
선우 님 자세한 답변 감사합니다.

근데,
me_id 는 왜 Field 라고 이름이 칭해지는 건가요?
DB 테이블 보니까, me_id 경우 컬럼명이 Name이던데...
선우善友
8년 전
위의 쿼리문은 해당테이블에서 sql 질의만 한 것이므로 폼(form) 태그의 name과는 상관이 없습니다.
위의 sql_fetch() 쿼리로 얻어올 데이타의 항목이 "show columns" 이므로, sql 질의 조건이 충족된다면 배열에 들어오는 내용이 다음과 같기 때문입니다.
[code]
print_r($row);
[/code]
결과
Array
(
[Field] => me_id
[Type] => int(11)
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] => auto_increment
)
s
sinbi
8년 전
아하, print_r로 조사하는 거였군요.
자세히 설명해 주셔서 감사합니다. ^^

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

s
sinbi Expert
8년 전

관심 갖고 답변해주신 분들 모두 감사합니다. 

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

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

c
8년 전

감사ㅓ합니다. 

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

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

8년 전

그누보드 소스에 보면, 아래와 같은 코드가 있습니다. 

참고해 보세요.

 

</p><p>$sql = " SHOW COLUMNS FROM `{$g5['board_table']}` LIKE 'bo_use_cert' ";</p><p>$row = sql_fetch($sql);</p><p>if(strpos($row['Type'], 'hp-') === false) {</p><p>    sql_query(" ALTER TABLE `{$g5['board_table']}` CHANGE `bo_use_cert` `bo_use_cert` ENUM('','cert','adult','hp-cert','hp-adult') NOT NULL DEFAULT '' ", false);</p><p>}</p><p style="font-size: 14.6667px;">


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

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

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

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

로그인