2011-11-07 177 views
0

我使用phpmyadmin在本地創建數據庫表。我將它們的引擎設置爲innoDB,並使用phpmyadmin創建外鍵關係。這一切都在當地工作。創建InnoDB表爲MyISAM

但是,如果我嘗試將這些表導出到生產站點,表創建爲MYISAM,並且通過創建列上的索引,它們不會作爲外鍵鏈接到另一個表。

任何想法,爲什麼會發生這種情況?

要導出的表,我剛進去phpMyAdmin來導出,這是查詢的一個例子它給了我,我在生產現場運行:

CREATE TABLE IF NOT EXISTS `foo` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `barId` int(11) NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `barId` (`barId`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 


ALTER TABLE `foo` 
    ADD CONSTRAINT `foo_ibfk_1` FOREIGN KEY (`barId`) REFERENCES `barTable` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION; 

這並創建表,並作出了索引在barId上,但表引擎是myisam而不是inno,barId上沒有外鍵指向barTable.id

+3

prod DB是否支持InnoDB? –

+1

+1 @Dave Newton的回答。鍵入'SHOW ENGINES;'查看遠程服務器端支持哪些數據庫引擎。 – Vic

+0

@vic是的,它支持InnoDb,我可以手動將它切換到inno db –

回答

1

從你所說的看起來,生產數據庫服務器看起來像忽略了ENGINE = InnoDB子句那裏。

您是否檢查以確保生產服務器上啓用了InnoDB?

+0

是它是,如果我手動通過phpmyadmin更改它,它的工作.. –