0

我怎样才能在我的桌子上添加这个 '2' 的 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'

4

5 回答 5

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
于 2012-09-20T18:03:39.730 回答
0

插入时,不要插入主键字段:

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

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

于 2012-09-20T18:03:43.353 回答
0

要将行插入具有自动增量字段的表中,您需要传递 aNULL来代替自动增量字段,例如

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

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

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

于 2012-09-20T18:07:20.847 回答
0
UPDATE f.tbl_te
SET 
 name = 'Mushroom Omlet',
 quantity = '1',
 price = '55',
 subtotal = '55'
WHERE
    id = 2;

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

于 2012-09-20T18:08:00.377 回答
0

目前尚不清楚您要做什么,如果您想将INSERT新记录添加到具有自动增量的表中,则不包括该字段:

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

但是,如果您想要UPDATE该值,id那么您可以使用UPDATE

UPDATE `f4`.`tbl_te` 
    SET `name`  = 'Mushroom Omelet',
    `quantity` = '1',
    `price` = '55',
    `subtotal`= '55'
WHERE `id` = 2
于 2012-09-20T18:08:29.687 回答