使用dbDelta创建wordpress数据库

使用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 );
 }

你可能感兴趣的:(wordpress)