使用wordpress难免会需要自定义创建一些数据表或者在原有的数据表上增加字段,以便我们灵活面对业务上的需求。
dbDelta(string [] | string $ queries = '', bool $ execute = true )
使用说明
根据指定的SQL语句修改数据库。
对于创建新表以及将现有表更新为新结构很有用。
注意
注意:如果更改字段名称,将创建一个具有新名称的空列,但不会删除旧列!
注意,您不能将FOREIGN KEY
约束与dbDelta
一起使用:https 😕/core.trac.wordpress.org/ticket/19207
注意,不要在字段或键上添加注释;preg_match代码无法处理。以下代码是错误的(感谢Store Locator Plus的代码)。
示例
使用索引创建表时,在SQL命令结构中必须非常小心。
这是一个正确的表创建表语法的简单示例,该表的主键位于“ id”字段,辅助键位于“ first”字段。
必须在PRIMARY KEY后跟两个空格,然后是开放括号,然后是字段名称和结束括号。
KEY后必须跟一个空格,然后是键名,然后是空格,然后是带有字段名的开括号,然后是一个封闭的括号。
private function index_test_001() {
global $wpdb;
$table_name = $wpdb->prefix . 'dbdelta_test_001';
$wpdb_collate = $wpdb->collate;
$sql =
"CREATE TABLE {$table_name} (
id mediumint(8) unsigned NOT NULL auto_increment ,
first varchar(255) NULL,
PRIMARY KEY (id),
KEY first (first)
)
COLLATE {$wpdb_collate}";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta( $sql );
}