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

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

QA

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

본문

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

 

 

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

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

 

 

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

 

 

이 질문에 댓글 쓰기 :

답변 5

이렇게 해보세요.


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

위의 쿼리문은 해당테이블에서 sql 질의만 한 것이므로 폼(form) 태그의 name과는 상관이 없습니다.
위의 sql_fetch() 쿼리로 얻어올 데이타의 항목이 "show columns" 이므로, sql 질의 조건이 충족된다면 배열에 들어오는 내용이 다음과 같기 때문입니다.


print_r($row);

결과
Array
(
    [Field] => me_id
    [Type] => int(11)
    [Null] => NO
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)

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

참고해 보세요.

 


$sql = " SHOW COLUMNS FROM `{$g5['board_table']}` LIKE 'bo_use_cert' ";
$row = sql_fetch($sql);
if(strpos($row['Type'], 'hp-') === false) {
    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);
}

답변을 작성하시기 전에 로그인 해주세요.
전체 123,673 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT