ERROR 1005(HY000):无法创建表'tracker_phonetracker.location_share'(错误号:-1)

时间:2015-07-23 12:50:26

标签: mysql

我在此查询中遇到此问题。

CREATE TABLE location_share ( 
    circle_id INT ,
    user_id INT , 
    location_sharing_id  INT , 
    PRIMARY KEY (user_id ,circle_id  ) , 
    CONSTRAINT fkcircle1 FOREIGN KEY (circle_id) REFERENCES circle(id) ON DELETE CASCADE ON UPDATE CASCADE , 
    CONSTRAINT fkuser1 FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE , 
    CONSTRAINT fksharing_policy FOREIGN KEY (location_sharing_id) REFERENCES share(id) ON DELETE CASCADE ON UPDATE CASCADE 
) ENGINE = INNODB 

Mysql向我显示错误1005:

  

错误1005(HY000):无法创建表格   'tracker_phonetracker.location_share'(错误号:-1)

此查询所依赖的其他表是:

表:圆圈

CREATE TABLE circle (
    id INT AUTO_INCREMENT PRIMARY KEY , 
    name varchar(35)
) ENGINE=INNODB

表:用户

CREATE TABLE user (
    id INT AUTO_INCREMENT PRIMARY KEY , 
    contact_no VARCHAR(25) UNIQUE NOT NULL, 
    email VARCHAR(50) UNIQUE  NOT     NULL, 
    first_name  VARCHAR(25) NOT NULL , 
    last_name VARCHAR(25) , 
    device_id VARCHAR(250)NOT NULL  , 
    image_path VARCHAR(180) , 
    password VARCHAR(30) NOT NULL , 
    latitude VARCHAR(18) , 
    longitude VARCHAR(18) 
) ENGINE=INNODB

表:分享

CREATE TABLE share (
    id INT AUTO_INCREMENT PRIMARY KEY , 
    policy VARCHAR(6) UNIQUE NOT NULL 
)

任何人都可以告诉我我的查询有什么问题。

谢谢!

3 个答案:

答案 0 :(得分:0)

来自手册:http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html

  

1005(ER_CANT_CREATE_TABLE)

     

无法创建表格。如果错误消息引用错误150,表   创建失败,因为外键约束不正确   形成。如果错误消息引用错误-1,则表创建   可能失败,因为该表包含匹配的列名称   内部InnoDB表的名称。

这是因为使用user您可以通过转发对user的引用来解决此问题:

 REFERENCES `user`(id)

答案 1 :(得分:0)

\A\w[^@\s,;]+@(?:mypost\.com|[\w-]+\.edu)\z

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

答案 2 :(得分:0)

解决方案(适合我):

  1. 重命名脚本中的表格。例如:wp_users到wp_users1
  2. 运行脚本。没错。
  3. 使用MySQL(或数据库引擎)中的Operation重命名表。
  4. 就绪
  5. 问候!