如果出現像這樣的數據錯誤 Error: Table 'discuz_cn.cdb_announcements' doesn't exist ,是指 cdb_announcements 的數據表遺失了,如果有備份數據的話就直接恢復,但如果沒有的話可以使用以下的升級數據庫來解決,不過凡事重建數據庫的話,該數據表的資料將完全遺失,就好像這個例子這樣論壇公告的所有資料將會遺失。重建數據表是最后的選擇,請時常對您的論壇進行備份數據,以便出現錯誤時可以及時恢復。有關 Discuz! 標準的數據表可以在安裝包里的 ./install/discuz.sql 里找到。
cdb_ 是默認的表名前綴,如果不同大家可以自行修改。
DROP TABLE IF EXISTS cdb_announcements;
CREATE TABLE cdb_announcements (
id smallint(6) unsigned NOT NULL auto_increment,
author varchar(15) NOT NULL default '',
`subject` varchar(250) NOT NULL default '',
displayorder tinyint(3) NOT NULL default '0',
starttime int(10) unsigned NOT NULL default '0',
endtime int(10) unsigned NOT NULL default '0',
message text NOT NULL,
PRIMARY KEY (id),
KEY timespan (starttime,endtime)
) TYPE=MyISAM;
==================================================================================================
出現 Error 1054 : Unknown column 'poll' in 'field list' 的錯誤是指 cdb_threads 數據表里的 poll (Field)遺失了,可以使用以下的數據表來重新升級
ALTER TABLE `cdb_threads` ADD `poll` TINYINT(1) DEFAULT '0' NOT NULL;
有關的數據可以在安裝包里的 ./install/discuz.sql 里找到。我們可以使用 Microsoft Windows 里的 Notepad ,然后再使用 Ctrl + F 的來進行尋找 poll 的數據。我們可以找到像以下的數據......
QUOTE:
DROP TABLE IF EXISTS cdb_threads;
CREATE TABLE cdb_threads (
tid mediumint(8) unsigned NOT NULL auto_increment,
fid smallint(6) unsigned NOT NULL default '0',
iconid smallint(6) unsigned NOT NULL default '0',
typeid smallint(6) unsigned NOT NULL default '0',
readperm tinyint(3) unsigned NOT NULL default '0',
price smallint(6) NOT NULL default '0',
author char(15) NOT NULL default '',
authorid mediumint(8) unsigned NOT NULL default '0',
`subject` char(80) NOT NULL default '',
dateline int(10) unsigned NOT NULL default '0',
lastpost int(10) unsigned NOT NULL default '0',
lastposter char(15) NOT NULL default '',
views int(10) unsigned NOT NULL default '0',
replies mediumint(8) unsigned NOT NULL default '0',
displayorder tinyint(1) NOT NULL default '0',
highlight tinyint(1) NOT NULL default '0',
digest tinyint(1) NOT NULL default '0',
rate tinyint(1) NOT NULL default '0',
blog tinyint(1) NOT NULL default '0',
poll tinyint(1) NOT NULL default '0',
attachment tinyint(1) NOT NULL default '0',
subscribed tinyint(1) NOT NULL,
moderated tinyint(1) NOT NULL default '0',
closed mediumint(8) unsigned NOT NULL default '0',
PRIMARY KEY (tid),
KEY digest (digest),
KEY displayorder (fid,displayorder,lastpost),
KEY blog (blog,authorid,dateline),
KEY typeid (fid,typeid,displayorder,lastpost)
) TYPE=MyISAM;
找到 poll 后,我們可以看看原來是在 cdb_threads 數據表里的,然后就執行 ALTER TABLE `cdb_threads` ADD `poll` TINYINT(1) NOT NULL DEFAULT '0' ;
我可能解釋到不是很清楚,但我已經是盡量用我的能力解釋到清楚了。
新聞熱點
疑難解答