如何在MySQL 5.5中创建具有全文索引和分区的表?

如何在MySQL 5.5中创建具有全文索引和分区的表?,mysql,partitioning,full-text-search,create-table,mysql-error-1214,Mysql,Partitioning,Full Text Search,Create Table,Mysql Error 1214,我将MySQL版本从5.0更新到5.5。我是研究mysql分区的新手。首先,我输入: 显示变量,如“%partition%” 确保新版本支持分区。我试着每10分钟对我的表进行一次分区,然后插入、更新、查询大量数据到这个表中进行测试 首先,我需要创建一个新表,我键入我的代码: CREATE TABLE test ( `id` int unsigned NOT NULL auto_increment, `words` varchar(100) collate utf8_unicode_ci N

我将MySQL版本从5.0更新到5.5。我是研究mysql分区的新手。首先,我输入:

显示变量,如“%partition%”

确保新版本支持分区。我试着每10分钟对我的表进行一次分区,然后插入、更新、查询大量数据到这个表中进行测试

首先,我需要创建一个新表,我键入我的代码:

CREATE TABLE test  ( 
`id` int unsigned NOT NULL auto_increment, 
`words` varchar(100) collate utf8_unicode_ci NOT NULL,  
`date` varchar(10) collate utf8_unicode_ci NOT NULL, 
PRIMARY KEY  (`id`),  
FULLTEXT KEY `index` (`words`)
) 
ENGINE=MyISAM  
DEFAULT CHARSET=utf8 
COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=0  
PARTITION BY RANGE (MINUTE(`date`)) 
(
PARTITION p0 VALUES LESS THAN (1322644000),  
PARTITION p1 VALUES LESS THAN (1322644600) , 
PARTITION p2 VALUES LESS THAN (1322641200) ,  
PARTITION p3 VALUES LESS THAN (1322641800) ,  
PARTITION p4 VALUES LESS THAN MAXVALUE
);
它返回警报:1564-不允许使用此分区函数,那么这是什么问题?谢谢

更新

将日期修改为int NOT NULL,并将按范围划分的分钟数据修改为按范围划分的列数据

然后导致新错误:1214-使用的表类型不支持全文索引

选择MINUTE'2008-10-10 56:56:98'返回null,原因是MINUTE函数从时间或日期时间值返回MINUTE,其中date是varchar,MINUTE函数以日期/日期时间表达式返回。同样,分区键必须是整数列或解析为
整数,但在您的情况下,它是VARCHAR

很抱歉,mysql不能同时支持全文和分区


全文索引。分区表不支持全文索引或搜索。这包括使用MyISAM存储引擎的分区表。

Rahul,那么您认为,插入代码的最佳方式是什么?我希望我的桌子每10分钟分区一次。再次感谢。Zohaib,我更新了我的代码,但这次导致1214-使用的表类型不支持全文索引。你知道吗?
CREATE TABLE test  ( 
`id` int unsigned NOT NULL auto_increment, 
`words` varchar(100) collate utf8_unicode_ci NOT NULL,  
`date` varchar(10) collate utf8_unicode_ci NOT NULL, 
PRIMARY KEY  (`id`),  
FULLTEXT KEY `index` (`words`)
) 
ENGINE=MyISAM  
DEFAULT CHARSET=utf8 
COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=0  
PARTITION BY RANGE (MINUTE(`date`)) 
(
PARTITION p0 VALUES LESS THAN (1322644000),  
PARTITION p1 VALUES LESS THAN (1322644600) , 
PARTITION p2 VALUES LESS THAN (1322641200) ,  
PARTITION p3 VALUES LESS THAN (1322641800) ,  
PARTITION p4 VALUES LESS THAN MAXVALUE
);
CREATE TABLE test  ( 
`id` int unsigned NOT NULL auto_increment, 
`words` varchar(100) collate utf8_unicode_ci NOT NULL,  
`date` int NOT NULL, 
PRIMARY KEY  (`id`),  
FULLTEXT KEY `index` (`words`)
) 
ENGINE=MyISAM  
DEFAULT CHARSET=utf8 
COLLATE=utf8_unicode_ci 
AUTO_INCREMENT=0  
PARTITION BY RANGE COLUMNS(`date`) 
(
PARTITION p0 VALUES LESS THAN (1322644000),  
PARTITION p1 VALUES LESS THAN (1322644600) , 
PARTITION p2 VALUES LESS THAN (1322641200) ,  
PARTITION p3 VALUES LESS THAN (1322641800) ,  
PARTITION p4 VALUES LESS THAN MAXVALUE
);