Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 支持事务、行级锁定和外键errorno 150_Php_Mysql_Foreign Keys - Fatal编程技术网

Php 支持事务、行级锁定和外键errorno 150

Php 支持事务、行级锁定和外键errorno 150,php,mysql,foreign-keys,Php,Mysql,Foreign Keys,我的insert声明如下: create table department ( name varchar (30) primary key ); create table PIO (id varchar (5), name varchar (30), dept_name varchar (30), email_id varchar (30), primary key ( id, name), foreign key(dept_name) references depart

我的insert声明如下:

create table department (
    name varchar (30) primary key
);
create table PIO (id varchar (5), name varchar (30), dept_name varchar (30), email_id varchar (30),
    primary key ( id, name),
    foreign key(dept_name) references department (name) on delete cascade);

create table applicant (
   name varchar(30), email_id varchar (30), phone varchar (15), address text
    );
create table application (app_name varchar (30), app_id int, pio_id varchar (5), pio_name varchar (30), dat DATE,content text,
    primary key (app_name,app_id,pio_id,pio_name),
    foreign key (app_name) references applicant (name),
    foreign key (pio_id) references  PIO (id),
    foreign key (pio_name) references PIO (name)
    );
未创建最后一个(应用程序)表…它给出以下错误:

支持事务、行级锁定和外键errorno 150

PIO(id)和(名称)不是键,所以不能在应用程序中向它们声明外键。 你的意思可能是,不要让这两个FK有一个:

--in application
foreign key (pio_id,pio_name) references PIO (id,name)
这将强制pio中的每个特定(pio_id、pio_名称)对在应用程序中显示为(id、名称)对

您可能只希望(pio_id)s显示为(id)s,而(io_name)s显示为(name)s。这是两个“包含依赖”(IND)约束。FK约束是引用PK或唯一子工作的IND约束。在SQL中很难编写非FK IND约束