首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql alter table添加重复名称错误

问Mysql alter table添加重复名称错误
EN

Stack Overflow用户
提问于 2014-01-05 00:59:47
回答 1查看 337关注 0票数 0

我比以前写了一个wp插件。

我尝试了这个插件更新。

Current update使用alter table sql查询。

但是我得到了WordPress数据库错误:

代码语言:javascript
复制
$abouts_table_name = $wpdb->prefix . $this->abouts_content_table;
$sql = "CREATE TABLE IF NOT EXISTS {$abouts_table_name} (
            id INT(11) NOT NULL AUTO_INCREMENT,
            $this->abouts_contents TEXT,
            PRIMARY KEY(id)
            )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";

dbDelta($sql);

$alter_sql = "ALTER TABLE wp_about_years_content ADD  year_id INT NOT NULL";
try {
    $alter_sql = "ALTER TABLE wp_about_years_content ADD  year_id INT NOT NULL";
    if (!$wpdb->query($alter_sql)) {
        throw new Exception("tablo zaten var");
    }
} catch (Exception $exc) {
    echo $exc->getMessage();
}

我的错误

​

​

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 04:21:22

我不明白你为什么要在事实之后加上栏目。但是要确保将列添加到前面创建的同一个表中,方法是像在create语句中一样,将alter脚本更改为动态调用表名。

那么就没有理由将$alter_sql设置两次。

您的代码应该如下所示。请原谅我的代码,如果不正确的php技能极其生疏。

代码语言:javascript
复制
$abouts_table_name = $wpdb->prefix . $this->abouts_content_table;
$sql = "CREATE TABLE IF NOT EXISTS {$abouts_table_name} (
            id INT(11) NOT NULL AUTO_INCREMENT,
            $this->abouts_contents TEXT,
            PRIMARY KEY(id)
            )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";

dbDelta($sql);

try {
    $alter_sql = "ALTER TABLE {$abouts_table_name} ADD  year_id INT NOT NULL";
    if (!$wpdb->query($alter_sql)) {
        throw new Exception("tablo zaten var");
    }
} catch (Exception $exc) {
    echo $exc->getMessage();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20923893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档