sql 명령어 조건절을 이미 충족한 경우엔 더 이상 작동 않게 하려면? 채택완료
sql_query("ALTER TABLE `g5_memo` CHANGE `me_id` `me_id` INT( 11 ) NOT NULL AUTO_INCREMENT");
만약, g5_memo 테이블이 위 핑크색 조건을 이미 충족한 상태라면
더 이상 위 명령어가 작동 않게 하려면 어떻게 조건을 줘야 할까요?
파일 하나 새로 만들어 실행 후 제거해도 되는데, 걍 한 파일에 모두 넣어 처리하려고 합니다.
답변 5개
이렇게 해보세요.
</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개
위의 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
)
자세히 설명해 주셔서 감사합니다. ^^
댓글을 작성하려면 로그인이 필요합니다.
그누보드 소스에 보면, 아래와 같은 코드가 있습니다.
참고해 보세요.
</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;">
댓글을 작성하려면 로그인이 필요합니다.
http://stackoverflow.com/questions/13772019/sql-check-if-a-column-auto-increments">http://stackoverflow.com/questions/13772019/sql-check-if-a-column-auto-increments
참고해 보세요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
근데,
me_id 는 왜 Field 라고 이름이 칭해지는 건가요?
DB 테이블 보니까, me_id 경우 컬럼명이 Name이던데...