Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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中,如何在INSERT语句中增加主键_Mysql - Fatal编程技术网

在MySQL中,如何在INSERT语句中增加主键

在MySQL中,如何在INSERT语句中增加主键,mysql,Mysql,我想在增加CustomerID属性的同时,手动在CUSTOMER表中添加另一行 以下是我的客户表的结构: ------------------------------------------------------ | CustomerID | FirstName | LastName | ------------------------------------------------------ | INTEGER PRIMARY KEY | CH

我想在增加CustomerID属性的同时,手动在CUSTOMER表中添加另一行

以下是我的客户表的结构:

 ------------------------------------------------------
 | CustomerID          |   FirstName  |    LastName   |
 ------------------------------------------------------
 | INTEGER PRIMARY KEY |   CHAR(15)   |    CHAR(15)   |
 ------------------------------------------------------
在这个表中,我已经有一行CustomerID=1,FirstName=Jeremhia,LastName=Cutecut。我想在这个表中添加另一行,而不指定CustomerID列中的数字,换句话说,我想增加它

这是我迄今为止所做的,但它不起作用:

INSERT INTO CUSTOMER (CustomerID, FirstName, LastName)
      VALUES (:vcustid, 'Abe', 'Lincoln');
我怀疑变量vcustid在phpMyAdmin中不起作用,是否有类似的变量或任何其他方法来增加它,所以我在表中得到了以下结果

------------------------------------------------------
| CustomerID          |   FirstName  |    LastName   |
------------------------------------------------------
|         1           |   Jeremhia   |    Cutecut    |
------------------------------------------------------
|         2           |   Abe        |    Lincoln    |
------------------------------------------------------

使用
AUTO_INCREMENT

CREATE TABLE CUSTOMER (
     CustomerID  INT NOT NULL AUTO_INCREMENT,
     FirstName  CHAR(30) NOT NULL,
     LastName  CHAR(30) NOT NULL
     PRIMARY KEY (CustomerID)
);
让db来处理PK

INSERT INTO CUSTOMER (FirstName, LastName)
       VALUES ('Abe', 'Lincoln');

使用
AUTO_INCREMENT

CREATE TABLE CUSTOMER (
     CustomerID  INT NOT NULL AUTO_INCREMENT,
     FirstName  CHAR(30) NOT NULL,
     LastName  CHAR(30) NOT NULL
     PRIMARY KEY (CustomerID)
);
让db来处理PK

INSERT INTO CUSTOMER (FirstName, LastName)
       VALUES ('Abe', 'Lincoln');

您还可以将属性AUTO_INCREMENT添加到字段中,以让sql处理该问题。然后只传递值

ALTER TABLE CUSTOMER MODIFY COLUMN CustomerID INT auto_increment

INSERT INTO CUSTOMER (CustomerID, FirstName, LastName)
      VALUES ('Abe', 'Lincoln');

您还可以将属性AUTO_INCREMENT添加到字段中,以让sql处理该问题。然后只传递值

ALTER TABLE CUSTOMER MODIFY COLUMN CustomerID INT auto_increment

INSERT INTO CUSTOMER (CustomerID, FirstName, LastName)
      VALUES ('Abe', 'Lincoln');

如果CurtomerID字段是使用
auto_increment
作为主键创建的,则只需插入名字和姓氏。请尝试使用
VARCHAR(255)
作为通用“字符串”列类型。将此限制限制限制为15个字符通常太过严格。如果使用
auto\u increment
将CurtomerID字段创建为主键,则只需插入名字和姓氏。请尝试使用
VARCHAR(255)
作为通用“字符串”列类型。通常限制性太强,无法将其限制在15个字符以内。如果是这种情况,则在插入时省略
CustomerID
,并自动填充。就是这样!在第二行,我没有在末尾指定主键,而是这样做了:CustomerID INTEGER primary key AUTO_INCREMENT,它就像一个符咒。感谢您为我指出自动增量属性!如果是这种情况,则在插入时省略
CustomerID
,并自动填充它。就是这样!在第二行,我没有在末尾指定主键,而是这样做了:CustomerID INTEGER primary key AUTO_INCREMENT,它就像一个符咒。感谢您为我指出自动增量属性!如果
CustomerID
已经有数据,下一个
ID
是什么?您可以设置起点,将
AUTO_INCREMENT=x
x
作为新的起点,然后您必须小心
修改列
。是的,您只会在需要保留数据时使用它,如果您仍在开发中,您的方法是正确的。如果
CustomerID
已经有数据,会发生什么,下一个
ID
是什么?您可以使用
AUTO_INCREMENT=x
x
作为新的起点来设置起点,然后你必须小心使用
MODIFY列
。是的,你只会在需要保留数据时使用它,如果你还在开发中,你的方法是正确的。