我正在設置一個網站,其中包含一個在安裝過程中創建多個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 ;
你到底在問什麼?如果您使用DROP TABLE,那麼它不會存在,因此它將被創建並顯示爲表被擦除。在第二部分中,如果表已經存在,則不會發生任何事情。 – hanleyhansen
很明顯,你的腳本是不分青紅皁白的;它放棄了桌子。 但是,如果您認真對待數據庫變更管理,請查看[Liquibase](http://www.liquibase.org) – Bohemian