PbootCMS错误提示:执行SQL发生错误!错误:no such column: def1

黄文博客 / 2024-09-28 / 原文

在PbootCMS升级过程中,如果出现“执行SQL发生错误!错误:no such column: def1”或“错误:duplicate column name: picstitle”的问题,可以通过手动执行SQL脚本来解决。以下是详细的解决方案步骤:

解决方案

1. 手动执行SQL脚本

  1. 登录数据库管理工具:

    • 使用 phpMyAdmin 或 MySQL Workbench 登录到你的数据库。
  2. 执行SQL脚本:

    • 将以下SQL脚本复制粘贴到数据库管理工具中执行。

SQL 脚本

-- ----------------------------
-- SqlITe数据库升级脚本
-- 适用于PbootCMS 3.0.0版本升级至3.0.6
-- ----------------------------

-- 新增多图标题字段
ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';

-- 栏目新增三个描述备用字段
ALTER TABLE ay_content_sort ADD COLUMN def1 TEXT(1000) NOT NULL DEFAULT '';
ALTER TABLE ay_content_sort ADD COLUMN def2 TEXT(1000) NOT NULL DEFAULT '';
ALTER TABLE ay_content_sort ADD COLUMN def3 TEXT(1000) NOT NULL DEFAULT '';

处理 “duplicate column name: picstitle” 错误

如果出现“duplicate column name: picstitle”错误,说明该字段已经存在。此时需要先检查表结构,确认字段是否存在。

  1. 检查表结构:

    • 使用以下命令检查表结构:
      DESC ay_content;
      DESC ay_content_sort;
  2. 删除重复字段:

    • 如果字段已经存在,可以尝试删除重复字段:
      ALTER TABLE ay_content DROP COLUMN picstitle;
      ALTER TABLE ay_content_sort DROP COLUMN def1;
      ALTER TABLE ay_content_sort DROP COLUMN def2;
      ALTER TABLE ay_content_sort DROP COLUMN def3;
  3. 重新执行SQL脚本:

    • 再次执行之前的SQL脚本:
      -- 新增多图标题字段
      ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';
      
      -- 栏目新增三个描述备用字段
      ALTER TABLE ay_content_sort ADD COLUMN def1 TEXT(1000) NOT NULL DEFAULT '';
      ALTER TABLE ay_content_sort ADD COLUMN def2 TEXT(1000) NOT NULL DEFAULT '';
      ALTER TABLE ay_content_sort ADD COLUMN def3 TEXT(1000) NOT NULL DEFAULT '';

执行SQL脚本的方法

  1. 使用 phpMyAdmin:

    • 登录 phpMyAdmin。
    • 选择对应的数据库。
    • 在 SQL 查询框中粘贴上述SQL脚本。
    • 点击“执行”按钮。
  2. 使用 MySQL 命令行:

    • 打开命令行工具。
    • 连接到 MySQL 数据库:
      mysql -u your_username -p your_database_name
    • 输入密码后,执行上述SQL脚本:
      -- 新增多图标题字段
      ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';
      
      -- 栏目新增三个描述备用字段
      ALTER TABLE ay_content_sort ADD COLUMN def1 TEXT(1000) NOT NULL DEFAULT '';
      ALTER TABLE ay_content_sort ADD COLUMN def2 TEXT(1000) NOT NULL DEFAULT '';
      ALTER TABLE ay_content_sort ADD COLUMN def3 TEXT(1000) NOT NULL DEFAULT '';

通过以上步骤,可以解决PbootCMS升级过程中出现的SQL错误,确保数据库结构与新版PbootCMS兼容。如果仍然存在问题,可以进一步检查数据库日志或联系技术支持获取帮助。