Mysql – ERROR 1005 (HY000): Can’t create table ‘phact_greenland.cache’ (errno: 121)

innodbMySQL

I get an error when I try to create a table:

ERROR 1005 (HY000): Can't create table 'phact_greenland.cache' (errno: 121)

CREATE TABLE IF NOT EXISTS `cache` 
(   
    `cid` varchar(255) NOT NULL DEFAULT '' 
        COMMENT 'Primary Key: Unique cache ID.'
    , `data` longblob 
        COMMENT 'A collection of data to cache.' 
    , `expire` int(11) NOT NULL DEFAULT '0' 
        COMMENT 'A Unix timestamp indicating when the cache entry 
                should expire, or 0 for never.'  
    , `created` int(11) NOT NULL DEFAULT '0' 
        COMMENT 'A Unix timestamp indicating when the cache entry was created.'  
    , `serialized` smallint(6) NOT NULL DEFAULT '0' 
        COMMENT 'A flag to indicate whether content is serialized (1) or not (0).' 
    , PRIMARY KEY (`cid`) 
    , KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
    COMMENT='Generic cache table for caching things not separated out...';

How do i solve it ?

Best Answer

You get Error 121 when you try to create a table that contains a constraint with the same name as a constraint defined elsewhere in your database. You can avoid this issue by naming the constraints yourself in the creation script. More information can be found below:

InnoDb Error Codes

http://dev.mysql.com/doc/refman/5.5/en/innodb-error-codes.html

Create Table Statement

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

I hope this helps you.