0

すでに「2」の ID を持っているテーブルに「2」のこの ID を追加するにはどうすればよいですか。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

自動インクリメント フィールドを持つテーブルに行を挿入するには、次のNULLように自動インクリメント フィールドの代わりにを渡す必要があります。

 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 に答える
0

挿入するときは、主キー フィールドを挿入しないでください。

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

挿入後、LastInsertID 関数を使用して、データベースが挿入に割り当てた ID を確認できます。

于 2012-09-20T18:03:43.353 に答える