Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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中插入行同时避免重复_Mysql_Insert_Duplicates - Fatal编程技术网

在MySQL中插入行同时避免重复

在MySQL中插入行同时避免重复,mysql,insert,duplicates,Mysql,Insert,Duplicates,。。由于id列不断增加,因此不断创建新行,如何使SKU唯一,以便检查SKU值是否存在,然后UPDATE而不是INSERT 在不允许重复的列上添加唯一键: $sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at) VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')"

。。由于
id
列不断增加,因此不断创建新行,如何使
SKU
唯一,以便检查
SKU
值是否存在,然后
UPDATE
而不是
INSERT

在不允许重复的列上添加唯一键:

$sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')";
完成此操作后,可以使用
ON DUPLICATE KEY UPDATE
子句更新行,而不是忽略
INSERT

ALTER TABLE product ADD UNIQUE KEY (reference);

ON DUPLICATE KEY
子句中使用
VALUES
可拾取在插入新行的
过程中分配的值。

在不允许重复的列上添加唯一键:

$sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')";
完成此操作后,可以使用
ON DUPLICATE KEY UPDATE
子句更新行,而不是忽略
INSERT

ALTER TABLE product ADD UNIQUE KEY (reference);

ON DUPLICATE KEY
子句中使用
VALUES
可拾取在插入新行的
过程中分配的值。

在不允许重复的列上添加唯一键:

$sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')";
完成此操作后,可以使用
ON DUPLICATE KEY UPDATE
子句更新行,而不是忽略
INSERT

ALTER TABLE product ADD UNIQUE KEY (reference);

ON DUPLICATE KEY
子句中使用
VALUES
可拾取在插入新行的
过程中分配的值。

在不允许重复的列上添加唯一键:

$sql = "INSERT IGNORE INTO product (reference, description, price, created_at, updated_at)
VALUES ('{$sku}', '{$description}', '{$price}', '{$created_at}', '{$updated_at}')";
完成此操作后,可以使用
ON DUPLICATE KEY UPDATE
子句更新行,而不是忽略
INSERT

ALTER TABLE product ADD UNIQUE KEY (reference);


使用重复键上的
子句中的
拾取在插入新行的
过程中分配的值。

参考
列上添加一个唯一的索引,使用
ALTER TABLE
创建索引
。您可以使用。SQL等价物应该是
MERGE
,但MySQL似乎不支持这种做法。@AnthonyForloney如果没有唯一索引,那么在重复键上的
就什么也做不了。是的,我正在阅读,但不太明白如何使用。只是在学习MySQL(@Ismaestro所有这些答案都假设您已经有一个唯一的键。它们没有首先说明如何创建唯一的键。在
参考
列中添加一个唯一的索引,使用
ALTER TABLE
create index
。您可以使用。SQL等价物是
合并
,但这似乎不是sMySQL内部支持。@AnthonyForloney如果没有唯一索引,在重复键上的
将不会做任何事情。是的,我正在阅读,但不太了解如何使用。只是学习MySQL:(@Ismaestro所有这些答案都假设您已经有一个唯一的键。它们没有首先说明如何创建唯一的键。在
参考
列中添加一个唯一的索引,使用
ALTER TABLE
create index
。您可以使用。SQL等价物是
合并
,但这似乎不是sMySQL内部支持。@AnthonyForloney如果没有唯一索引,在重复键上的
将不会做任何事情。是的,我正在阅读,但不太了解如何使用。只是学习MySQL:(@Ismaestro所有这些答案都假设您已经有一个唯一的键。它们没有首先说明如何创建唯一的键。在
参考
列中添加一个唯一的索引,使用
ALTER TABLE
create index
。您可以使用。SQL等价物是
合并
,但这似乎不是sMySQL内部支持。@AnthonyForloney如果没有唯一索引,在重复键上的
将不会做任何事情。是的,我正在阅读,但不太了解如何使用。只是学习MySQL:(@Ismaestro所有这些答案都假设您已经有一个唯一的键。他们没有首先说明如何创建唯一的键。这只做一次?或者每次我进行查询时?只做一次。索引是架构的一部分。您需要唯一的键加。奇怪的问题。尽管
$conn->query($sql)==TRUE)
通过并报告成功创建的
,但我在数据库中没有看到太多条目。例如,
0213A5
,它不在数据库中。我也是
mysqli\u real\u escape\u string
导致错误的字符串。我找到了它。有一个警告:
mysqli\u real\u escape\u string()只需要2个参数,1个给定的
,所以我将其更改为
$description\u safe=mysqli\u real\u escape\u string($conn,$description);
这只需执行一次?或者每次我进行查询?只需一次。索引是架构的一部分。您需要唯一的加键。奇怪的问题。尽管
$conn->query($sql)==TRUE)
通过并报告成功创建的
,但我在数据库中没有看到太多条目。例如,
0213A5
,它不在数据库中。我也是
mysqli\u real\u escape\u string
导致错误的字符串。我找到了它。有一个警告:
mysqli\u real\u escape\u string()只需要2个参数,1个给定的
,所以我将其更改为
$description\u safe=mysqli\u real\u escape\u string($conn,$description);
这只需执行一次?或者每次我进行查询?只需一次。索引是架构的一部分。您需要唯一的加键。奇怪的问题。尽管
$conn->query($sql)==TRUE)
通过并报告成功创建的
,但我在数据库中没有看到太多条目。例如,
0213A5
,它不在数据库中。我也是
mysqli\u real\u escape\u string
导致错误的字符串。我找到了它。有一个警告:
mysqli\u real\u escape\u string()只需要2个参数,1个给定
,因此我将其更改为
$desc