php - SQL 创建表 - 错误

标签 php mysql phpmyadmin

我目前正在使用 phpmyadmin 创建许多不同的表,但这一个似乎引起了问题。这可能是这部分代码的错误,或者可能是我的代码中进一步引用 Staff 的错误?

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 said:

1005 - Can't create table 'h_h.staff' (errno: 150) (Details...)

最佳答案

从错误来看,很明显该错误是由于外键约束造成的。您可以尝试禁用外键约束,然后创建表并最后重新启用它吗?

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;

关于php - SQL 创建表 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16272419/

相关文章:

php - 在 mysql where 子句之间不起作用

mysql - 使用触发器将所有密码状态重置为零

php - SQL 数据库是否返回类型,或者数据库抽象层是否执行隐式转换? (推进和 PHP)

php - 如何在 WordPress 中使用自定义 mysql 查询使用 meta_key 对帖子进行排序?

php - Mac os x 10.9 上的 MYSQL #1045 错误(使用我的密码)

php - 使用 PHP 比较和输出来自数组和 MySQL 查询的日期

PHP 请求 "in background"

php验证问题 行尾字符无效;预计 "\n"但找到 "\r\n"

mysql - 删除mysql中字符串后面的所有内容

stored-procedures - php/myAdmin版本4.8-编辑例程未显示mysql错误消息