我如何向我的表中添加行,这将是影响我的主键的自动增量

时间:2012-09-20 18:00:52

标签: php mysql sql

我怎样才能在我的桌子上添加这个'2'的id我已经有一个id为'2'的id我想问一下身份

 INSERT INTO `f4`.`tbl_te` (
`id` ,
`name` ,
`quantity` ,
`price` ,
`subtotal`
)
VALUES (
'2', 'Mushroom Omelet', '1', '55', '55'
)

#1062 - Duplicate entry '2' for key 'PRIMARY'

5 个答案:

答案 0 :(得分:1)

如果它是主键,则它必须是唯一的 - 您需要更改您尝试添加的ID。或者,如果它是auto_increment,则根本不需要在INSERT中指定它:

 INSERT INTO `f4`.`tbl_te` (
`name` ,
`quantity` ,
`price` ,
`subtotal`
)
VALUES (
'Mushroom Omelet', '1', '55', '55'
)

这将为其分配下一个可用密钥。

如果您只想更改现有值:

UPDATE `f4`.`tbl_te` SET
    `name`='Mushroom Omelet',
    `quantity`='1',
    `price`='55',
    `subtotal`='55',
WHERE
    id=2

答案 1 :(得分:0)

插入时,请勿插入主键字段:

INSERT INTO `f4`.`tbl_te` (
`name` , `quantity` , `price` ,`subtotal` )
VALUES ( 'Mushroom Omelet', '1', '55', '55' )

插入后,您也可以使用LastInsertID函数查看数据库为插入分配的ID。

答案 2 :(得分:0)

要在具有自动增量字段的表中插入行,您需要传递NULL代替自动增量字段,如

 INSERT INTO `f4`.`tbl_te` (
`id` ,
`name` ,
`quantity` ,
`price` ,
`subtotal`
)
VALUES (
NULL, 'Mushroom Omelet', '1', '55', '55'
)

这将插入带有自动递增数字的行。

如果要更新现有行,请使用常用的更新查询。

答案 3 :(得分:0)

UPDATE f.tbl_te
SET 
 name = 'Mushroom Omlet',
 quantity = '1',
 price = '55',
 subtotal = '55'
WHERE
    id = 2;

如果要替换该ID,请更新相同的记录。您不能有倍数,所以如果它存在,请更新它。虽然,没有必要,如果你真的想改变id 2是什么,这就是方法。

答案 4 :(得分:0)

目前还不完全清楚你想要做什么,如果你想要{?1}一个新记录到一个具有自动增量的表,你不包括那个字段:

INSERT

但是,如果您想要 INSERT INTO `f4`.`tbl_te` ( `name` , `quantity` , `price` , `subtotal` ) VALUES ( 'Mushroom Omelet', '1', '55', '55' ) UPDATE的值,那么您使用id

UPDATE