Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 SQL创建表-错误_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php SQL创建表-错误

Php SQL创建表-错误,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我目前正在使用phpmyadmin创建许多不同的表,但这一个似乎导致了一个问题。这可能是这部分代码中的错误,或者可能是由于代码中引用了更深层的人员而导致的 SQL query: CREATE TABLE Staff( Staff_ID INTEGER( 5 ) PRIMARY KEY AUTO_INCREMENT , Local_ID INTEGER( 5 ) , First_name VARCHAR( 20 ) NOT NULL , Last_name VARCHAR( 20 ) NOT

我目前正在使用phpmyadmin创建许多不同的表,但这一个似乎导致了一个问题。这可能是这部分代码中的错误,或者可能是由于代码中引用了更深层的人员而导致的

SQL query:

CREATE TABLE Staff(

Staff_ID INTEGER( 5 ) PRIMARY KEY AUTO_INCREMENT ,
Local_ID INTEGER( 5 ) ,
First_name VARCHAR( 20 ) NOT NULL ,
Last_name VARCHAR( 20 ) NOT NULL ,
Address_line_1 VARCHAR( 30 ) NOT NULL ,
Address_line_2 VARCHAR( 30 ) NOT NULL ,
City VARCHAR( 20 ) NOT NULL ,
Post_Code VARCHAR( 8 ) NOT NULL ,
Email VARCHAR( 30 ) NOT NULL ,
Telephone INTEGER NOT NULL ,
Date_employed DATE,
Salary DECIMAL,
Sales_ID INTEGER( 5 ) ,
Manager_ID INTEGER( 5 ) ,
Development_ID INTEGER( 5 ) ,
FOREIGN KEY ( Local_ID ) REFERENCES LocalOffice( Local_ID ) ,
FOREIGN KEY ( Sales_ID ) REFERENCES Sales_Advisors( Sales_ID ) ,
FOREIGN KEY ( Manager_ID ) REFERENCES Site_Manager( Manager_ID ) ,
FOREIGN KEY ( Development_ID ) REFERENCES Development( Development_ID )
);
MySQL说:

1005-无法创建表“h_h.staff”(错误号:150)(详细信息…)
我认为应该像这样在外键上创建索引

...

Development_ID INTEGER( 5 ) ,
INDEX Local_ID,
INDEX Sales_ID,
INDEX Manager_ID,
INDEX DEvelopment_ID,
FOREIGN KEY ( Local_ID ) REFERENCES LocalOffice( Local_ID ) ,
FOREIGN KEY ( Sales_ID ) REFERENCES Sales_Advisors( Sales_ID ) ,
FOREIGN KEY ( Manager_ID ) REFERENCES Site_Manager( Manager_ID ) ,
FOREIGN KEY ( Development_ID ) REFERENCES Development( Development_ID )
);

从错误中可以很清楚地看出,这个错误是由于外键约束造成的。能否尝试禁用外键约束,然后创建表并最终重新启用它

SET foreign_key_checks = 0;

CREATE TABLE Staff(

Staff_ID INTEGER( 5 ) PRIMARY KEY AUTO_INCREMENT ,
Local_ID INTEGER( 5 ) ,
First_name VARCHAR( 20 ) NOT NULL ,
Last_name VARCHAR( 20 ) NOT NULL ,
Address_line_1 VARCHAR( 30 ) NOT NULL ,
Address_line_2 VARCHAR( 30 ) NOT NULL ,
City VARCHAR( 20 ) NOT NULL ,
Post_Code VARCHAR( 8 ) NOT NULL ,
Email VARCHAR( 30 ) NOT NULL ,
Telephone INTEGER NOT NULL ,
Date_employed DATE,
Salary DECIMAL,
Sales_ID INTEGER( 5 ) ,
Manager_ID INTEGER( 5 ) ,
Development_ID INTEGER( 5 ) ,
FOREIGN KEY ( Local_ID ) REFERENCES LocalOffice( Local_ID ) ,
FOREIGN KEY ( Sales_ID ) REFERENCES Sales_Advisors( Sales_ID ) ,
FOREIGN KEY ( Manager_ID ) REFERENCES Site_Manager( Manager_ID ) ,
FOREIGN KEY ( Development_ID ) REFERENCES Development( Development_ID )
);

SET foreign_key_checks = 1;

这段代码在我的mysql上运行吗?你怎么回事啊?请显示错误。使用PHPMYADMIN-这是完全错误。mysql文档中的这一点对您有帮助吗:from
1005(ER\u CANT\u CREATE\u TABLE)无法创建表。如果错误消息指向错误150,则表创建失败,因为外键约束的格式不正确。
至少有人正在阅读MySQL手册……但到目前为止还不是这样。我认为在定义外键之前,应该对其进行索引。这就是为什么没有创建表的原因。但这以后可能会导致多少问题?@LukeClifford看看如何:这似乎有效:
INSERT-INTO-Staff-VALUES(null,null,'Sean','D','UP62@mac.uk’,'07411557877','2012-10-08',80000.00,空,空,空)所以我看到了你发给我的链接。他们已经工作了,但我认为通过使用这项工作,这意味着我不能简单地使用INSERT语句:
NSERT到Staff值中(null,null,'Sean','D','sUP62@mac.uk’,'07411557877','2012-10-08',80000.00,空,空,空)