在MySQL中,如何在INSERT语句中增加主键
我想在增加CustomerID属性的同时,手动在CUSTOMER表中添加另一行 以下是我的客户表的结构:在MySQL中,如何在INSERT语句中增加主键,mysql,Mysql,我想在增加CustomerID属性的同时,手动在CUSTOMER表中添加另一行 以下是我的客户表的结构: ------------------------------------------------------ | CustomerID | FirstName | LastName | ------------------------------------------------------ | INTEGER PRIMARY KEY | CH
------------------------------------------------------
| 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列
。是的,你只会在需要保留数据时使用它,如果你还在开发中,你的方法是正确的。