버전: v2.6.0
create
새 테이블을 만듭니다.
create($table, $columns, $options)
table [string]
생성할 테이블 이름입니다.
columns [array]
새 테이블의 컬럼 정의입니다.
options [array/string] (선택 사항)
테이블 생성 시 적용할 추가 옵션입니다.
반환값
[PDOStatement] 실행된 쿼리에 대한 PDOStatement 인스턴스입니다.
기본 예제
각 컬럼을 배열로 정의하면 Medoo가 이를 완전한 컬럼 정의로 조합합니다.
$database->create("account", [
"id" => [
"INT",
"NOT NULL",
"AUTO_INCREMENT",
"PRIMARY KEY"
],
"first_name" => [
"VARCHAR(30)",
"NOT NULL"
]
]);
CREATE TABLE IF NOT EXISTS account ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(30) NOT NULL )
Identity 컬럼
목록 항목으로
"@id"를 추가하면 id라는 이름의 자동 생성 정수 기본 키를 정의할 수 있습니다. 컬럼 이름을 바꾸려면 "@account_id"처럼 @ 뒤에 다른 이름을 지정합니다. Medoo는 이 마커를 현재 데이터베이스 유형에 알맞은 정의로 변환합니다.$database->create("account", [
"@id",
"email" => [
"VARCHAR(255)",
"NOT NULL"
]
]);
| 데이터베이스 | @id에서 생성되는 정의 |
|---|---|
| MySQL / MariaDB | id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY |
| PostgreSQL | id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY |
| SQLite | id INTEGER PRIMARY KEY AUTOINCREMENT |
| MSSQL | id BIGINT IDENTITY(1,1) PRIMARY KEY |
| Oracle | id NUMBER(19) GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY |
| Sybase | id BIGINT IDENTITY PRIMARY KEY |
Identity 마커는 하나만 사용할 수 있습니다. 같은 컬럼을 일반 컬럼 정의로 중복 선언할 수 없습니다.
고급 예제
추가 옵션이 필요할 때는 컬럼 정의에 Raw 문자열을 직접 전달할 수도 있습니다.
<column_name> 구문은 식별자를 간단히 인용하기 위한 축약 표기입니다.$database->create("account", [
"id" => [
"INT",
"NOT NULL",
"AUTO_INCREMENT"
],
"email" => [
"VARCHAR(70)",
"NOT NULL",
"UNIQUE"
],
"PRIMARY KEY (<id>)"
], [
"ENGINE" => "MyISAM",
"AUTO_INCREMENT" => 200
]);
CREATE TABLE IF NOT EXISTS account ( id INT NOT NULL AUTO_INCREMENT, email VARCHAR(70) NOT NULL UNIQUE, PRIMARY KEY (`id`) ) ENGINE = MyISAM, AUTO_INCREMENT = 200