2011-02-18 77 views
0

我需要使用連接到mysql服務器但使用SQLAlchemy代碼的mysqldb創建wordpress數據庫。該表的SQL如下:用於創建wordpress數據庫表的MySQLDB代碼

CREATE TABLE IF NOT EXISTS `wp_links` (
    `link_id` bigint(20) unsigned NOT NULL auto_increment, 
    `link_url` varchar(255) NOT NULL default '', 
    `link_name` varchar(255) NOT NULL default '', 
    `link_image` varchar(255) NOT NULL default '', 
    `link_target` varchar(25) NOT NULL default '', 
    `link_description` varchar(255) NOT NULL default '', 
    `link_visible` varchar(20) NOT NULL default 'Y', 
    `link_owner` bigint(20) unsigned NOT NULL default '1', 
    `link_rating` int(11) NOT NULL default '0', 
    `link_updated` datetime NOT NULL default '0000-00-00 00:00:00', 
    `link_rel` varchar(255) NOT NULL default '', 
    `link_notes` mediumtext NOT NULL, 
    `link_rss` varchar(255) NOT NULL default '', 
    PRIMARY KEY (`link_id`), 
    KEY `link_visible` (`link_visible`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; 

這是我寫的做同樣的事情的Python代碼:

wp_links = []#links table 
wp_links.append (Table ('wp_links', metadata, Column ('link_id', BIGINT(20, unsigned=True),nullable=False, primary_key=True), 
         Column('link_url', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_name', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_image', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_target', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_description', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_visible', VARCHAR(20), key='link_visible', nullable=False, server_default='Y'), 
         Column('link_owner', BIGINT(20, unsigned=True), nullable=False, server_default='1'), 
         Column('link_rating', INTEGER(11), nullable=False, server_default='0'), 
         Column('link_updated', DATETIME(), nullable=False, server_default='0000-00-00 00:00:00'), 
         Column('link_rel', VARCHAR(255), nullable=False, server_default=''), 
         Column('link_notes', MEDIUMTEXT(), nullable=False), 
         Column('link_rss', VARCHAR(255), nullable=False, server_default=''))) 

它轉換爲下列SQL:

CREATE TABLE IF NOT EXISTS `wp_links` (
    `link_id` bigint(20) unsigned NOT NULL auto_increment, 
    `link_url` varchar(255) NOT NULL default '', 
    `link_name` varchar(255) NOT NULL default '', 
    `link_image` varchar(255) NOT NULL default '', 
    `link_target` varchar(255) NOT NULL default '', 
    `link_description` varchar(255) NOT NULL default '', 
    `link_visible` varchar(20) NOT NULL default 'Y', 
    `link_owner` bigint(20) unsigned NOT NULL default '1', 
    `link_rating` int(11) NOT NULL default '0', 
    `link_updated` datetime NOT NULL default '0000-00-00 00:00:00', 
    `link_rel` varchar(255) NOT NULL default '', 
    `link_notes` mediumtext NOT NULL, 
    `link_rss` varchar(255) NOT NULL default '', 
    PRIMARY KEY (`link_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

注意不同之處,行「KEY link_visiblelink_visible)」不存在。如何糾正我的Python代碼以使它們相同?

回答

0

望着MySQL文檔:

鍵通常爲INDEX的同義詞。當在列定義中給出時,鍵屬性PRIMARY KEY也可以被指定爲KEY。這是爲了與其他數據庫系統兼容而實現的。

所以因此我想看看

http://www.sqlalchemy.org/docs/core/schema.html#indexes

索引可用於使用上

柱內聯索引關鍵字的單個列匿名的創建(使用自動生成的名稱ix_)
相關問題