我在此查询中遇到此问题。
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
)
任何人都可以告诉我我的查询有什么问题。
谢谢!
答案 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)
解决方案(适合我):
问候!