제약사항 DEFAULT 속성은 컬럼에 입력되는 데이터의 값이 없을 경우 기본적으로 입력 되는 초기값을 의미합니다. 특정한 컬럼에 데이터를 지정하지 않을 때 NULL로 설정되지 않고 지정한 초기값으로 설정됩니다.
09.2.1 쿼리 실습
테이블에서 City 속성은 기본값이 ‘Seoul’로 되어 있습니다. 만일 City 컬럼의 값이 없는 경우는 기본값 ‘Seoul’을 입력하라는 의미입니다.
| 예제 쿼리 |
CREATE TABLE members (
Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
City varchar(255) DEFAULT 'Seoul'
);
기본값 속성은 다음과 같이 함수를 이용하여 설정할 수도 있습니다.
| 예제 쿼리 |
CREATE TABLE Orders (
Id int NOT NULL,
OrderNumber int NOT NULL,
RegOrder date DEFAULT GETDATE()
);
ALTER TABLE 명령을 통하여 기본값을 추가로 설정을 변경할 수 있습니다.
| 예제 쿼리 |
ALTER TABLE members ALTER City SET DEFAULT 'Seoul';
기본값을 삭제할 수도 있습니다.
| 예제 쿼리 |
ALTER TABLE members ALTER City DROP DEFAULT;
09.2.2 PHP 실습
PHP 코드를 통하여 컬럼의 기본값 속성을 정의하는 실습입니다. 관련 메서드를 생성하 여 소스에 적용합니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
public function constraintDEFAULT($tbname, $field, $default)
{
if ($tbname){
if($default){
$queryString = "ALTER TABLE $tbname ALTER $field SET DEFAULT '$default'";
} else {
$queryString = "ALTER TABLE $tbname ALTER $field DROP DEFAULT";
}
// 쿼리를 전송합니다.
if (mysqli_query($this->dbcon, $queryString)=== TRUE){
$this->msgEcho("쿼리성공] ".$queryString);
$this->msgEcho(" 기본값 설정!");
// 객체 반환, 매서드체인
return $this;
} else {
$this->msgEcho("Error] ".$queryString);
}
} else {
$this->msgEcho("Error] 테이블 이름이 없습니다.");
}
}
예제 파일 | attri-01.php
<?php
include "dbinfo.php";
include "mysql.class.php";
// ++ Mysqli DB 연결.
$db = new JinyMysql();
$tbname = "members";
$field = "City";
$default = "Seoul";
// 속성 기본값을 설정합니다.
$db->constraintDEFAULT($tbname, $field, $default);
?>
화면 출력
mysql connected!
쿼리성공] ALTER TABLE members ALTER City SET DEFAULT 'Seoul'
기본값 설정!