【发布时间】:2017-03-30 15:39:09
【问题描述】:
抱歉,这可能是个愚蠢的问题,但我与我的 sql 查询堆叠在一起。尝试了许多方法来解决它,但仍然有 error 150。我创建了 3 个表和一个带有外键的表:
表用户
create table users(
id int(11) primary key auto_increment,
unique_id varchar(23) not null unique,
name varchar(50) not null,
cname varchar(50) not null,
email varchar(100) not null unique,
encrypted_password varchar(80) not null,
salt varchar(10) not null,
created_at datetime,
updated_at datetime null
);
表格行为
CREATE TABLE behaviours (
id int(2) AUTO_INCREMENT PRIMARY KEY,
bName varchar(100) NOT NULL
);
表严重性
CREATE TABLE severitys (
id int(2) AUTO_INCREMENT PRIMARY KEY,
severity varchar(10) NOT NULL
);
这里显示错误:
CREATE TABLE child_behaviours(
id int(11) primary key auto_increment,
name varchar(50) not null,
cname varchar(50) not null,
bName varchar(100) NOT NULL,
severity varchar(10) NOT NULL,
start_at datetime,
stop_at datetime null,
FOREIGN KEY (id) REFERENCES users(id),
FOREIGN KEY (bName) REFERENCES behaviours(bName),
FOREIGN KEY (severity) REFERENCES severitys(severity)
);
很高兴得到这个问题的答案
【问题讨论】:
-
在您的 child_behaviours 中引用表的主键作为外键
-
对不起,看不懂你的意思..
-
不要只引用用户表的任何列。引用主键 - ID 而不是名称或 cname
-
仍然不起作用.. 尝试将用户的 PK 用作 child_behaviours 的 PK 和 FK
标签: mysql sql database oracle phpmyadmin