Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.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
Mysql SQL查询主键约束_Mysql - Fatal编程技术网

Mysql SQL查询主键约束

Mysql SQL查询主键约束,mysql,Mysql,我是sql的新手。有人能告诉我下面的sql查询吗。我的问题在于staffID int NOT NULL自动递增,主键(personID) 多谢各位。 注意。您试图创建无效列的主键,同时忽略自动递增列。请尝试使用下面的SQL。从MySQL中可以看到这一点 CREATE TABLE Persons(staffId INT AUTO_INCREMENT, personId VARCHAR(10), firstName VARCHAR(15), LastName VAR

我是sql的新手。有人能告诉我下面的sql查询吗。我的问题在于
staffID int NOT NULL自动递增,主键(personID)

多谢各位。
注意。

您试图创建无效列的主键,同时忽略自动递增列。请尝试使用下面的SQL。从MySQL中可以看到这一点

CREATE TABLE Persons(staffId INT AUTO_INCREMENT, 
     personId VARCHAR(10),
     firstName VARCHAR(15), 
     LastName VARCHAR(15),
     Age INT, 
     primary key (staffId,personId));

自动增量列应为int类型&主键。但是如果staff_id不是主键,那么您的sql语句是错误的。您可以将staffid设置为主键,将person设置为唯一键

$sql   =   "CREATE   TABLE   Persons(staffId int primary key AUTO_INCREMENT
, personid int unique key not null , FirstName  varchar(15),LastName  varchar(15), Age int)";

什么是人格?显然,斯塔菲是主键。存储年龄是一个愚蠢的想法你的自动增量列应该是你的PK。此外,您还需要定义personID。请解释此语句
staffID int NOT NULL AUTO\u INCREMENT,PRIMARY KEY(personID)
@yetin AUTO\u INCREMENT列应为int和PRIMARY KEY。staffID是define auto_increment,但未声明为主键。这是错误的原因。请解释此语句
staffID int NOT NULL AUTO_INCREMENT,PRIMARY KEY(personID)
根据SQL定义,PRIMARY KEY必须是表中的一个可用列,默认情况下该列不为NULL且唯一。SO中的SQL语句甚至没有列。因此,首先创建列并将其用作主键。
$sql   =   "CREATE   TABLE   Persons(staffId int primary key AUTO_INCREMENT
, personid int unique key not null , FirstName  varchar(15),LastName  varchar(15), Age int)";