WordPress创建表(如果不存在)或更新列

时间:2018-09-09 20:35:13

标签: wordpress create-table

到目前为止,我一直在register_activation_hook中为所有表使用以下代码:

$playlist_table = $wpdb->prefix . "app_playlists";
    if($wpdb->get_var( "show tables like '$playlist_table'" ) != $playlist_table){

        $sql = "CREATE TABLE $playlist_table (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `title` varchar(100) NOT NULL,
            PRIMARY KEY (`id`)
        ) $charset_collate;";
        dbDelta( $sql );

    }

然后稍后在plugins_loaded操作中,我检查插件版本,然后偶尔在表中添加一些列,也可能删除或修改一些列。

这会在各个地方扩展表代码,从而使其难以维护。我想知道我是否可以这样写CREATE TABLE,使我对表的所有更改都集中在一个地方,而wpdb只会自行更新表?

例如,假设所有更新后我的表现在都像这样:

$sql = "CREATE TABLE $playlist_table (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `major_title` varchar(300) NOT NULL,
            `new_column` varchar(500) NOT NULL,
            `some_other_new_column` tinyint(1) DEFAULT NULL,
            PRIMARY KEY (`id`)
        ) $charset_collate;";
        dbDelta( $sql );

0 个答案:

没有答案