Reputation: 153
Query:
CREATE TABLE location_share (
id INT AUTO_INCREMENT PRIMARY KEY ,
user_id INT ,
circle_id INT ,
location_sharing_id INT ,
CONSTRAINT fkuser1 FOREIGN KEY (user_id)
REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fkcircle1 FOREIGN KEY (circle_id)
REFERENCES circle(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 ;
Error message:
error : #1005 - Can't create table
'.\phonetracker\location_share.frm'
(errno: 150)
Other tables:
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 circle (
id INT AUTO_INCREMENT PRIMARY KEY ,
name varchar(35)
) ENGINE=INNODB
CREATE TABLE share (
id INT AUTO_INCREMENT PRIMARY KEY ,
policy VARCHAR(6) UNIQUE NOT NULL
)
Upvotes: 3
Views: 103
Reputation: 17289
http://sqlfiddle.com/#!9/c3d04/1
Nothing wrong with your query, just need to be ordered, if you use FOREIGN KEY
the parent table must be declared first.
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 circle (
id INT AUTO_INCREMENT PRIMARY KEY ,
name varchar(35)
) ENGINE=INNODB;
CREATE TABLE share (
id INT AUTO_INCREMENT PRIMARY KEY ,
policy VARCHAR(6) UNIQUE NOT NULL
);
CREATE TABLE location_share (
id INT AUTO_INCREMENT PRIMARY KEY ,
user_id INT ,
circle_id INT ,
location_sharing_id INT ,
CONSTRAINT fkuser1 FOREIGN KEY (user_id)
REFERENCES user(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fkcircle1 FOREIGN KEY (circle_id)
REFERENCES circle(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 ;
Upvotes: 1