- Custom DataBase Tables
- CDBT Version 1.x
- メソッド・リファレンス
- validate_alter_sql
validate_alter_sql
validate_alter_sql( string $table_name, string $sql )
テーブル構造変更SQL(ALTER TABLE)文の検証と最適化を行います。この関数によって最適化されたテーブル構造変更SQL文を実行するには、WordPressコアクラスのメソッド$wpdb->query()を使います。
パラメータ
$table_name
$sql
返り値
array( bool, string )
このメソッドは検証・最適化処理の結果を含む配列を返します。第1要素に処理結果を示す Boolean 値が入ります。検証結果が正常だった場合は TRUE 、それ以外は FALSE が入ります。第2要素には、正常処理時に最適化されたテーブル作成SQL文が返ります。それ以外の時は NULL が返ります。
変更履歴
| バージョン | 内容 |
|---|---|
| 1.0.0 | – |
使用例
特定カラムの直後に新しいカラムを追加する
<?php
global $cdbt;
$table_name = "customer_master";
if ($cdbt->check_table_exists($table_name)) {
$alter_table_sql = "ALTER TABLE $table_name
ADD `description` text DEFAULT NULL COMMENT 'Description' AFTER `url`,
";
list($status, $fixed_sql) = $cdbt->validate_alter_sql($table_name, $alter_table_sql);
if ($status) {
$wpdb->query($fixed_sql);
}
}
データベースエンジンを変更する
<?php
global $cdbt;
$table_name = "customer_master";
if ($cdbt->check_table_exists($table_name)) {
$alter_table_sql = "ALTER TABLE $table_name
ENGINE = MyISAM
";
list($status, $fixed_sql) = $cdbt->validate_alter_sql($table_name, $alter_table_sql);
if ($status) {
$wpdb->query($fixed_sql);
}
}
特定のカラムにインデックスを貼る
<?php
global $cdbt;
$table_name = "customer_master";
if ($cdbt->check_table_exists($table_name)) {
$alter_table_sql = "ALTER TABLE $table_name
ADD FULLTEXT `fulltext_index` (`address`)
";
list($status, $fixed_sql) = $cdbt->validate_alter_sql($table_name, $alter_table_sql);
if ($status) {
$wpdb->query($fixed_sql);
}
}