데이터베이스 Forge 클래스
데이터베이스 Forge 클래스는 데이터베이스를 관리하는 데 도움이 되는 메서드를 포함합니다.
Forge 클래스 초기화
중요
Forge 클래스를 초기화하려면 데이터베이스 드라이버가 이미 실행 중이어야 합니다. Forge 클래스는 데이터베이스 드라이버에 의존하기 때문입니다.
Forge 클래스를 다음과 같이 로드합니다:
<?php
$forge = \Config\Database::forge();
관리하려는 데이터베이스가 기본 데이터베이스가 아닌 경우, DB Forge 로더에 다른 데이터베이스 그룹 이름을 전달할 수도 있습니다:
<?php
$this->myforge = \Config\Database::forge('other_db');
위 예제에서는 연결할 다른 데이터베이스 그룹의 이름을 첫 번째 매개변수로 전달합니다.
데이터베이스 생성 및 삭제
$forge->createDatabase(‘db_name’)
첫 번째 매개변수에 지정한 데이터베이스를 생성할 수 있습니다. 성공 또는 실패에 따라 true/false를 반환합니다:
<?php
if ($forge->createDatabase('my_db')) {
echo 'Database created!';
}
선택적 두 번째 매개변수를 true로 설정하면 IF EXISTS 구문을 추가하거나 데이터베이스를 생성하기 전에 해당 데이터베이스가 존재하는지 확인합니다(DBMS에 따라 다름).
<?php
$forge->createDatabase('my_db', true);
/*
* gives CREATE DATABASE IF NOT EXISTS `my_db`
* or will check if a database exists
*/
$forge->dropDatabase(‘db_name’)
첫 번째 매개변수에 지정한 데이터베이스를 삭제할 수 있습니다. 성공 또는 실패에 따라 true/false를 반환합니다:
<?php
if ($forge->dropDatabase('my_db')) {
echo 'Database deleted!';
}
커맨드 라인에서 데이터베이스 생성
CodeIgniter는 전용 db:create 명령을 사용하여 터미널에서 직접 데이터베이스를 생성하는 것을 지원합니다. 이 명령을 사용할 때는 데이터베이스가 아직 존재하지 않는 것으로 가정합니다. 그렇지 않으면 CodeIgniter는 데이터베이스 생성에 실패했다고 오류를 표시합니다.
시작하려면 명령과 데이터베이스 이름(예: foo)을 입력합니다:
php spark db:create foo
모든 것이 정상적으로 진행되면 Database "foo" successfully created. 메시지가 표시됩니다.
테스트 환경에 있거나 SQLite3 드라이버를 사용하는 경우, --ext 옵션을 사용하여 데이터베이스가 생성될 파일의 확장자를 전달할 수 있습니다. 유효한 값은 db와 sqlite이며, 기본값은 db입니다. 이 값들 앞에 마침표를 붙이지 않아야 합니다. :
php spark db:create foo --ext sqlite
위 명령은 WRITEPATH/foo.sqlite에 db 파일을 생성합니다.
참고
특수한 SQLite3 데이터베이스 이름 :memory:를 사용하면 명령이 성공 메시지를 출력하지만 데이터베이스 파일은 생성되지 않습니다. 이는 SQLite3가 인메모리 데이터베이스를 사용하기 때문입니다.
테이블 생성
테이블을 생성할 때 수행하고 싶은 작업이 여러 가지 있을 수 있습니다. 필드 추가, 테이블에 키 추가, 컬럼 변경 등이 그 예입니다. CodeIgniter는 이를 위한 메커니즘을 제공합니다.
필드 추가
$forge->addField()
필드는 일반적으로 연관 배열을 통해 생성됩니다. 배열 내에는 필드의 데이터 타입에 해당하는 type 키를 반드시 포함해야 합니다.
예를 들어 INT, VARCHAR, TEXT 등이 있습니다. 많은 데이터 타입(예: VARCHAR)은 constraint 키도 필요합니다.
<?php
$fields = [
'users' => [
'type' => 'VARCHAR',
'constraint' => 100,
],
];
// will translate to "users VARCHAR(100)" when the field is added.
추가로 다음과 같은 키/값을 사용할 수 있습니다:
unsigned/true : 필드 정의에UNSIGNED를 생성합니다.default/값 : 필드 정의에DEFAULT제약 조건을 생성합니다.null/true : 필드 정의에NULL을 생성합니다. 이를 지정하지 않으면 필드의 기본값은NOT NULL이 됩니다.auto_increment/true : 필드에 auto_increment 플래그를 생성합니다. 필드 타입이INTEGER와 같이 이를 지원하는 타입이어야 합니다.unique/true : 필드 정의에 유니크 키를 생성합니다.
<?php
$fields = [
'id' => [
'type' => 'INT',
'constraint' => 5,
'unsigned' => true,
'auto_increment' => true,
],
'title' => [
'type' => 'VARCHAR',
'constraint' => '100',
'unique' => true,
],
'author' => [
'type' => 'VARCHAR',
'constraint' => 100,
'default' => 'King of Town',
],
'description' => [
'type' => 'TEXT',
'null' => true,
],
'status' => [
'type' => 'ENUM',
'constraint' => ['publish', 'pending', 'draft'],
'default' => 'pending',
],
];
$forge->addField($fields);
필드를 정의한 후, $forge->addField($fields)를 사용하여 필드를 추가하고 createTable() 메서드를 호출합니다.
데이터 타입에 대한 참고 사항
부동 소수점 타입
FLOAT과 DOUBLE과 같은 부동 소수점 타입은 근사값을 나타냅니다. 따라서 정확한 값이 필요한 경우에는 사용하지 않아야 합니다.
mysql> CREATE TABLE t (f FLOAT, d DOUBLE);
mysql> INSERT INTO t VALUES(99.9, 99.9);
mysql> SELECT * FROM t WHERE f=99.9;
Empty set (0.00 sec)
mysql> SELECT * FROM t WHERE f > 99.89 AND f < 99.91;
+------+------+
| f | d |
+------+------+
| 99.9 | 99.9 |
+------+------+
1 row in set (0.01 sec)
통화 데이터와 같이 정확한 정밀도를 유지하는 것이 중요한 경우에는 DECIMAL 또는 NUMERIC을 사용해야 합니다.
TEXT
TEXT는 SQLSRV에서 사용하지 않아야 합니다. 이는 더 이상 사용되지 않습니다. ntext, text, and image (Transact-SQL) - SQL Server | Microsoft Learn을 참조하세요.
ENUM
모든 데이터베이스가 ENUM을 지원하는 것은 아닙니다.
v4.5.0부터 SQLSRV Forge는 ENUM 데이터 타입을 VARCHAR(n)으로 변환합니다. 이전 버전에서는 TEXT로 변환되었습니다.
기본값으로 Raw SQL 문자열 사용
Added in version 4.2.0.
v4.2.0부터 $forge->addField()는 raw SQL 문자열을 표현하는 CodeIgniter\Database\RawSql 인스턴스를 허용합니다.
<?php
use CodeIgniter\Database\RawSql;
$fields = [
'id' => [
'type' => 'INT',
'constraint' => 5,
'unsigned' => true,
'auto_increment' => true,
],
'created_at' => [
'type' => 'TIMESTAMP',
'default' => new RawSql('CURRENT_TIMESTAMP'),
],
];
$forge->addField($fields);
/*
gives:
"id" INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
"created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
*/
경고
RawSql을 사용할 때는 데이터를 수동으로 이스케이프해야 합니다. 그렇지 않으면 SQL 인젝션이 발생할 수 있습니다.
문자열을 필드로 전달
필드를 어떻게 생성할지 정확히 알고 있다면, addField()를 사용하여 문자열을 필드 정의에 전달할 수 있습니다:
<?php
$forge->addField("label varchar(100) NOT NULL DEFAULT 'default label'");
참고
raw 문자열을 필드로 전달한 경우, 해당 필드에 대해 addKey() 호출을 이어서 사용할 수 없습니다.
참고
addField()를 여러 번 호출하면 누적됩니다.
id 필드 생성
id 필드 생성에는 특별한 예외가 있습니다. 타입이 id인 필드는 자동으로 INT(9) auto_increment 기본 키로 지정됩니다.
<?php
$forge->addField('id');
// gives `id` INT(9) NOT NULL AUTO_INCREMENT
키 추가
$forge->addKey()
일반적으로 테이블에 키를 추가하고 싶을 것입니다. 이는 $forge->addKey('field')로 수행합니다. 선택적 두 번째 매개변수를 true로 설정하면 기본 키가 되고, 세 번째 매개변수를 true로 설정하면 유니크 키가 됩니다. 네 번째 매개변수로 이름을 지정할 수 있습니다. 테이블이 이미 존재하는 경우 addKey() 이후에 반드시 createTable() 또는 processIndexes()를 호출해야 합니다.
여러 컬럼의 비기본 키는 배열로 전달해야 합니다. 아래 샘플 출력은 MySQL에 대한 것입니다.
<?php
$forge->addKey('blog_id', true);
// gives PRIMARY KEY `blog_id` (`blog_id`)
$forge->addKey('blog_id', true);
$forge->addKey('site_id', true);
// gives PRIMARY KEY `blog_id_site_id` (`blog_id`, `site_id`)
$forge->addKey('blog_name');
// gives KEY `blog_name` (`blog_name`)
$forge->addKey(['blog_name', 'blog_label'], false, false, 'my_key_name');
// gives KEY `my_key_name` (`blog_name`, `blog_label`)
$forge->addKey(['blog_id', 'uri'], false, true, 'my_key_name');
// gives UNIQUE KEY `my_key_name` (`blog_id`, `uri`)
$forge->addPrimaryKey()
$forge->addUniqueKey()
코드를 더 명확하게 읽을 수 있도록 특정 메서드를 사용하여 기본 키와 유니크 키를 추가할 수도 있습니다:
<?php
$forge->addPrimaryKey('blog_id', 'pd_name');
// gives PRIMARY KEY `pd_name` (`blog_id`)
$forge->addUniqueKey(['blog_id', 'uri'], 'key_name');
// gives UNIQUE KEY `key_name` (`blog_id`, `uri`)
참고
기본 키를 추가할 때, MySQL과 SQLite는 이름을 제공하더라도 PRIMARY로 이름을 사용합니다.
외래 키 추가
외래 키는 테이블 간의 관계와 동작을 강제하는 데 도움이 됩니다. 외래 키를 지원하는 테이블의 경우 forge에서 직접 추가할 수 있습니다:
<?php
$forge->addForeignKey('users_id', 'users', 'id');
// gives CONSTRAINT `TABLENAME_users_id_foreign` FOREIGN KEY(`users_id`) REFERENCES `users`(`id`)
$forge->addForeignKey(['users_id', 'users_name'], 'users', ['id', 'name']);
// gives CONSTRAINT `TABLENAME_users_id_foreign` FOREIGN KEY(`users_id`, `users_name`) REFERENCES `users`(`id`, `name`)
제약 조건의 “on update” 및 “on delete” 속성에 대해 원하는 동작과 이름을 지정할 수 있습니다:
<?php
$forge->addForeignKey('users_id', 'users', 'id', 'CASCADE', 'CASCADE', 'my_fk_name');
// gives CONSTRAINT `my_fk_name` FOREIGN KEY(`users_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
$forge->addForeignKey('users_id', 'users', 'id', '', 'CASCADE');
// gives CONSTRAINT `TABLENAME_users_foreign` FOREIGN KEY(`users_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
$forge->addForeignKey(['users_id', 'users_name'], 'users', ['id', 'name'], 'CASCADE', 'CASCADE', 'my_fk_name');
// gives CONSTRAINT `my_fk_name` FOREIGN KEY(`users_id`, `users_name`) REFERENCES `users`(`id`, `name`) ON DELETE CASCADE ON UPDATE CASCADE
참고
SQLite3는 외래 키 이름 지정을 지원하지 않습니다. CodeIgniter는 prefix_table_column_foreign으로 외래 키를 참조합니다.
테이블 생성하기
필드와 키를 선언한 후, 다음을 사용하여 새 테이블을 생성할 수 있습니다
<?php
$forge->createTable('table_name');
// gives CREATE TABLE table_name
선택적 두 번째 매개변수를 true로 설정하면 테이블이 존재하지 않는 경우에만 테이블을 생성합니다.
<?php
$forge->createTable('table_name', true);
// creates table only if table does not exist
MySQL의 ENGINE과 같은 선택적 테이블 속성을 전달할 수도 있습니다:
<?php
$attributes = ['ENGINE' => 'InnoDB'];
$forge->createTable('table_name', false, $attributes);
// produces: CREATE TABLE `table_name` (...) ENGINE = InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
참고
CHARACTER SET 및/또는 COLLATE 속성을 지정하지 않으면, 설정된 charset과 DBCollat 값이 비어 있지 않는 한 createTable()은 항상 해당 값을 추가합니다(MySQL 전용).
테이블 삭제
테이블 삭제하기
DROP TABLE 구문을 실행하고 선택적으로 IF EXISTS 절을 추가합니다.
<?php
// Produces: DROP TABLE `table_name`
$forge->dropTable('table_name');
// Produces: DROP TABLE IF EXISTS `table_name`
$forge->dropTable('table_name', true);
세 번째 매개변수를 전달하여 CASCADE 옵션을 추가할 수 있습니다. 이는 일부 드라이버에서 외래 키가 있는 테이블 삭제를 처리하는 데 필요할 수 있습니다.
<?php
// Produces: DROP TABLE `table_name` CASCADE
$forge->dropTable('table_name', false, true);
테이블 수정
테이블에 필드 추가
$forge->addColumn()
addColumn() 메서드는 기존 테이블을 수정하는 데 사용됩니다. 테이블 생성과 동일한 필드 배열을 허용하며, 추가 필드를 추가하는 데 사용할 수 있습니다.
참고
테이블을 생성할 때와 달리, null을 지정하지 않으면 컬럼은 NOT NULL이 아닌 NULL이 됩니다.
<?php
$fields = [
'preferences' => ['type' => 'TEXT'],
];
$forge->addColumn('table_name', $fields);
// Executes: ALTER TABLE `table_name` ADD `preferences` TEXT
MySQL 또는 CUBRID를 사용하는 경우 AFTER 및 FIRST 절을 활용하여 새 컬럼의 위치를 지정할 수 있습니다.
예:
<?php
// Will place the new column after the `another_field` column:
$fields = [
'preferences' => ['type' => 'TEXT', 'after' => 'another_field'],
];
// Will place the new column at the start of the table definition:
$fields = [
'preferences' => ['type' => 'TEXT', 'first' => true],
];
테이블에서 필드 삭제
$forge->dropColumn()
테이블에서 컬럼을 제거하는 데 사용됩니다.
<?php
$forge->dropColumn('table_name', 'column_to_drop'); // to drop one single column
테이블에서 여러 컬럼을 제거하는 데 사용됩니다.
<?php
$forge->dropColumn('table_name', 'column_1,column_2'); // by proving comma separated column names
$forge->dropColumn('table_name', ['column_1', 'column_2']); // by proving array of column names
테이블의 필드 수정
$forge->modifyColumn()
이 메서드의 사용법은 addColumn()과 동일하지만, 새 컬럼을 추가하는 대신 기존 컬럼을 변경합니다. 이름을 변경하려면 필드 정의 배열에 “name” 키를 추가할 수 있습니다.
<?php
$fields = [
'old_name' => [
'name' => 'new_name',
'type' => 'TEXT',
'null' => false,
],
];
$forge->modifyColumn('table_name', $fields);
// gives ALTER TABLE `table_name` CHANGE `old_name` `new_name` TEXT NOT NULL
참고
modifyColumn()은 NULL/NOT NULL을 예상치 못하게 변경할 수 있습니다. 따라서 항상 null 키의 값을 명시적으로 지정하는 것이 좋습니다. 테이블을 생성할 때와 달리, null을 지정하지 않으면 컬럼은 NOT NULL이 아닌 NULL이 됩니다.
참고
버그로 인해 v4.3.4 이전 버전에서 SQLite3는 'null' => false를 지정해도 NOT NULL을 설정하지 않을 수 있습니다.
참고
버그로 인해 v4.3.4 이전 버전에서 Postgres와 SQLSRV는 'null' => true를 지정해도 NOT NULL을 설정합니다.
테이블에 키 추가
Added in version 4.3.0.
addKey(), addPrimaryKey(), addUniqueKey() 또는 addForeignKey()와 processIndexes()를 사용하여 기존 테이블에 키를 추가할 수 있습니다:
<?php
$this->forge->addKey(['category', 'name'], false, false, 'category_name');
$this->forge->addPrimaryKey('id', 'pk_actions');
$this->forge->addForeignKey('userid', 'user', 'id', '', '', 'userid_fk');
$this->forge->processIndexes('actions');
/* gives:
ALTER TABLE `actions` ADD KEY `category_name` (`category`, `name`);
ALTER TABLE `actions` ADD CONSTRAINT `pk_actions` PRIMARY KEY(`id`);
ALTER TABLE `actions` ADD CONSTRAINT `userid_fk` FOREIGN KEY (`userid`) REFERENCES `user`(`id`);
*/
기본 키 삭제
Added in version 4.3.0.
DROP PRIMARY KEY를 실행합니다.
<?php
// MySQLi Produces: ALTER TABLE `tablename` DROP PRIMARY KEY
// Others Produces: ALTER TABLE `tablename` DROP CONSTRAINT `pk_tablename`
$forge->dropPrimaryKey('tablename');
키 삭제
DROP KEY를 실행합니다.
<?php
// For Indexes Produces: DROP INDEX `users_index` ON `tablename`
// For Unique Indexes Produces: ALTER TABLE `tablename` DROP CONSTRAINT `users_index`
$forge->dropKey('tablename', 'users_index', false);
외래 키 삭제
DROP FOREIGN KEY를 실행합니다.
<?php
// Produces: ALTER TABLE `tablename` DROP FOREIGN KEY `users_foreign`
$forge->dropForeignKey('tablename', 'users_foreign');
테이블 이름 변경
TABLE 이름 변경을 실행합니다
<?php
$forge->renameTable('old_table_name', 'new_table_name');
// gives ALTER TABLE `old_table_name` RENAME TO `new_table_name`
클래스 레퍼런스
- class CodeIgniter\Database\Forge
- addColumn($table[, $field = []])
- 매개변수:
$table (
string) – 컬럼을 추가할 테이블 이름$field (
array) – 컬럼 정의
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
기존 테이블에 컬럼을 추가합니다. 사용법: 테이블에 필드 추가를 참조하세요.
- addField($field)
- 매개변수:
$field (
array) – 추가할 필드 정의
- 반환:
\CodeIgniter\Database\Forge인스턴스 (메서드 체이닝)- 반환 형식:
\CodeIgniter\Database\Forge
테이블 생성에 사용될 집합에 필드를 추가합니다. 사용법: 필드 추가를 참조하세요.
- addForeignKey($fieldName, $tableName, $tableField[, $onUpdate = '', $onDelete = '', $fkName = ''])
- 매개변수:
$fieldName (
string|string[]) – 키 필드 이름 또는 필드 배열$tableName (
string) – 부모 테이블 이름$tableField (
string|string[]) – 부모 테이블 필드 이름 또는 필드 배열$onUpdate (
string) – “on update”에 대한 원하는 동작$onDelete (
string) – “on delete”에 대한 원하는 동작$fkName (
string) – 외래 키 이름. SQLite3에서는 동작하지 않습니다
- 반환:
\CodeIgniter\Database\Forge인스턴스 (메서드 체이닝)- 반환 형식:
\CodeIgniter\Database\Forge
테이블 생성에 사용될 집합에 외래 키를 추가합니다. 사용법: 외래 키 추가를 참조하세요.
참고
$fkName은 v4.3.0부터 사용할 수 있습니다.
- addKey($key[, $primary = false[, $unique = false[, $keyName = '']]])
- 매개변수:
$key (
mixed) – 키 필드 이름 또는 필드 배열$primary (
bool) – 기본 키 또는 일반 키로 설정하려면 true로 설정합니다$unique (
bool) – 유니크 키 또는 일반 키로 설정하려면 true로 설정합니다$keyName (
string) – 추가할 키 이름
- 반환:
\CodeIgniter\Database\Forge인스턴스 (메서드 체이닝)- 반환 형식:
\CodeIgniter\Database\Forge
테이블 생성에 사용될 집합에 키를 추가합니다. 사용법: 키 추가를 참조하세요.
참고
$keyName은 v4.3.0부터 사용할 수 있습니다.
- addPrimaryKey($key[, $keyName = ''])
- 매개변수:
$key (
mixed) – 키 필드 이름 또는 필드 배열$keyName (
string) – 추가할 키 이름
- 반환:
\CodeIgniter\Database\Forge인스턴스 (메서드 체이닝)- 반환 형식:
\CodeIgniter\Database\Forge
테이블 생성에 사용될 집합에 기본 키를 추가합니다. 사용법: 키 추가를 참조하세요.
참고
$keyName은 v4.3.0부터 사용할 수 있습니다.
- addUniqueKey($key[, $keyName = ''])
- 매개변수:
$key (
mixed) – 키 필드 이름 또는 필드 배열$keyName (
string) – 추가할 키 이름
- 반환:
\CodeIgniter\Database\Forge인스턴스 (메서드 체이닝)- 반환 형식:
\CodeIgniter\Database\Forge
테이블 생성에 사용될 집합에 유니크 키를 추가합니다. 사용법: 키 추가를 참조하세요.
참고
$keyName은 v4.3.0부터 사용할 수 있습니다.
- createDatabase($dbName[, $ifNotExists = false])
- 매개변수:
$db_name (
string) – 생성할 데이터베이스 이름$ifNotExists (
string) –IF NOT EXISTS절을 추가하거나 데이터베이스 존재 여부를 확인하려면 true로 설정합니다
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
새 데이터베이스를 생성합니다. 사용법: 데이터베이스 생성 및 삭제를 참조하세요.
- createTable($table[, $if_not_exists = false[, array $attributes = []]])
- 매개변수:
$table (
string) – 생성할 테이블 이름$if_not_exists (
string) –IF NOT EXISTS절을 추가하려면 true로 설정합니다$attributes (
string) – 테이블 속성의 연관 배열
- 반환:
성공 시 쿼리 객체, 실패 시 false
- 반환 형식:
mixed
새 테이블을 생성합니다. 사용법: 테이블 생성을 참조하세요.
- dropColumn($table, $columnNames)
- 매개변수:
$table (
string) – 테이블 이름$columnNames (
mixed) – 쉼표로 구분된 문자열 또는 컬럼 이름의 배열
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
테이블에서 단일 또는 여러 컬럼을 삭제합니다. 사용법: 테이블에서 필드 삭제를 참조하세요.
- dropDatabase($dbName)
- 매개변수:
$dbName (
string) – 삭제할 데이터베이스 이름
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
데이터베이스를 삭제합니다. 사용법: 데이터베이스 생성 및 삭제를 참조하세요.
- dropKey($table, $keyName[, $prefixKeyName = true])
- 매개변수:
$table (
string) – 키가 있는 테이블 이름$keyName (
string) – 삭제할 키 이름$prefixKeyName (
string) –$keyName에 데이터베이스 접두사를 추가해야 하는지 여부
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
인덱스 또는 유니크 인덱스를 삭제합니다.
참고
$keyName과$prefixKeyName은 v4.3.0부터 사용할 수 있습니다.
- dropPrimaryKey($table[, $keyName = ''])
- 매개변수:
$table (
string) – 기본 키를 삭제할 테이블 이름$keyName (
string) – 삭제할 기본 키 이름
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
테이블에서 기본 키를 삭제합니다.
참고
$keyName은 v4.3.0부터 사용할 수 있습니다.
- dropTable($table_name[, $if_exists = false])
- 매개변수:
$table (
string) – 삭제할 테이블 이름$if_exists (
string) –IF EXISTS절을 추가하려면 true로 설정합니다
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
테이블을 삭제합니다. 사용법: 테이블 삭제를 참조하세요.
- processIndexes($table)
Added in version 4.3.0.
- 매개변수:
$table (
string) – 인덱스를 추가할 테이블 이름
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
addKey(),addPrimaryKey(),addUniqueKey(),addForeignKey()이후에 사용하여 기존 테이블에 인덱스를 추가합니다. 테이블에 키 추가를 참조하세요.
- modifyColumn($table, $field)
- 매개변수:
$table (
string) – 테이블 이름$field (
array) – 컬럼 정의
- 반환:
성공 시 true, 실패 시 false
- 반환 형식:
bool
테이블 컬럼을 수정합니다. 사용법: 테이블의 필드 수정을 참조하세요.