2014-02-24 65 views
0

我正在設置一個網站,其中包含一個在安裝過程中創建多個MySQL數據庫的腳本,並且由於我所做的更改,我不得不多次重新安裝腳本。在重新安裝期間,安裝腳本會擦除這些組中的所有組和類別。我必須再次手動輸入組和類別。腳本的重新安裝抹掉了我已經填充的數據庫

這是代碼的兩個實例,同時清除了我創建和填充的數據庫。

DROP TABLE IF EXISTS `categories`; 
CREATE TABLE IF NOT EXISTS `categories` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    `category_name` varchar(255) character set utf8 NOT NULL, 
    `group_id` smallint(6) unsigned NOT NULL, 
    `description` text character set utf8 NOT NULL, 
    `page_title` varchar(255) character set utf8 NOT NULL, 
    `meta_keywords` text character set utf8 NOT NULL, 
    `meta_description` text character set utf8 NOT NULL, 
    `is_active` tinyint(4) NOT NULL default '1', 
    `created` int(11) NOT NULL, 
    `modified` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; 



CREATE TABLE IF NOT EXISTS `categories` (
    `id` int(10) unsigned NOT NULL auto_increment, 
    `category_name` varchar(255) character set utf8 NOT NULL, 
    `group_id` smallint(6) unsigned NOT NULL, 
    `description` text character set utf8 NOT NULL, 
    `page_title` varchar(255) character set utf8 NOT NULL, 
    `meta_keywords` text character set utf8 NOT NULL, 
    `meta_description` text character set utf8 NOT NULL, 
    `is_active` tinyint(4) NOT NULL default '1', 
    `created` int(11) NOT NULL, 
    `modified` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; 
+0

你到底在問什麼?如果您使用DROP TABLE,那麼它不會存在,因此它將被創建並顯示爲表被擦除。在第二部分中,如果表已經存在,則不會發生任何事情。 – hanleyhansen

+0

很明顯,你的腳本是不分青紅皁白的;它放棄了桌子。 但是,如果您認真對待數據庫變更管理,請查看[Liquibase](http://www.liquibase.org) – Bohemian

回答

0

當然它是核武器;您致電

DROP TABLE IF EXISTS `categories`; 

這就是DROP TABLE所做的:銷燬表格。

0

DROP TABLE IF EXISTS categories; 是在原來的腳本和我發現問題後,我刪除了該行的代碼,只包括上面的第二個例子。即使刪除了該行代碼,它仍然會清除類別數據庫。

混淆?!

謝謝,

相關問題