Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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_Sql_Insert - Fatal编程技术网

MySQL |如果字段存在,则更新插入的插入记录

MySQL |如果字段存在,则更新插入的插入记录,mysql,sql,insert,Mysql,Sql,Insert,我有一个包含三个字段的表: 自动递增整数(主键) 应该是唯一的字符串 包含非唯一值的整数 见下图: 整数字段的值不需要是唯一的 我的问题: 我从API中提取数据,并将字符串和第三个字段(整数)插入表中。目前,我正在截断表并再次插入以避免重复。如果字符串存在,它只更新第三个字段(整数),如果它不存在,它将正常插入行 我知道使用重复键技术,但是我的“键”是主键,我要检查重复的字符串字段。如果字符串字段应该是唯一的,则将其声明为唯一的: alter table add constraint un

我有一个包含三个字段的表:

  • 自动递增整数(主键)
  • 应该是唯一的字符串
  • 包含非唯一值的整数
见下图:

整数字段的值不需要是唯一的

我的问题: 我从API中提取数据,并将字符串和第三个字段(整数)插入表中。目前,我正在截断表并再次插入以避免重复。如果字符串存在,它只更新第三个字段(整数),如果它不存在,它将正常插入行


我知道使用重复键技术,但是我的“键”是主键,我要检查重复的字符串字段。

如果字符串字段应该是唯一的,则将其声明为唯一的:

alter table add constraint unq_table_string unique (string);

然后,当违反此约束时,重复键上的
将找到匹配项。

如果字符串字段应该是唯一的,则将其声明为唯一的:

alter table add constraint unq_table_string unique (string);

然后,当此约束也被违反时,重复键上的
将找到匹配项。

您可以尝试以下查询-

ALTER IGNORE TABLE `your_table`
ADD UNIQUE INDEX (`hash_name` );

这将向表中添加唯一索引并删除所有重复的哈希名称,并确保以后不会插入重复的哈希名称。

您可以尝试以下查询-

ALTER IGNORE TABLE `your_table`
ADD UNIQUE INDEX (`hash_name` );
这将为您的表添加唯一索引,并删除所有重复的hash_名称,并确保将来不会插入重复的hash_名称