mysql 計算非重複 MySQL 不重複插入

2021-10-22 05:17:52 字數 1598 閱讀 6828

sql unique 約束

unique 約束唯一標識資料庫表中的每條記錄。

unique 和 primary key 約束均為列或列集合提供了唯一性的保證。

primary key 擁有自動定義的 unique 約束。

請注意,每個表可以有多個 unique 約束,但是每個表只能有乙個 primary key 約束。

下面的 sql 在 「persons」 表建立時在 「id_p」 列建立 unique 約束:

create table persons

id_p int not null,

lastname varchar(255) not null,

firstname varchar(255),

address varchar(255),

city varchar(255),

unique (id_p)

如果需要命名 unique 約束,以及為多個列定義 unique 約束,請使用下面的 sql 語法:

create table persons

id_p int not null,

lastname varchar(255) not null,

firstname varchar(255),

address varchar(255),

city varchar(255),

constraint uc_personid unique (id_p,lastname)

當表已被建立時,如需在 「id_p」 列建立 unique 約束,請使用下列 sql:

alter table persons add unique (id_p)

如需命名 unique 約束,並定義多個列的 unique 約束,請使用下面的 sql 語法:

alter table persons add constraint uc_personid unique (id_p,lastname)

如需撤銷 unique 約束,請使用下面的 sql:

alter table persons drop index uc_personid

這樣每次插入重覆記錄時mysql就會提示duplicate entry value1-value2 for key uni_que,當然你可以在insert的時候加入ignore來忽略掉

現在保證了無重覆記錄後,我們要開始記錄不存在則插入,存在則更新操作

insert into tablename (field1, field2, field3, ...) values ('value1', 'value2','value3', ...) on duplicate key update field1='value1', field2='value2', field3='value3', ...

這個語句的意思是,插入值,如果沒有該記錄執行

insert into tablename (field1, field2, field3, ...) values ('value1', 'value2','value3', ...)

這一段,如果存在該記錄,那麼執行

update field1='value1', field2='value2', field3='value3', ...

mysql 分頁 重複 Mysql分頁重複問題

因為這個bug,同事差點被祭天 mp.weixin.qq.com 前言前些天同事告訴我遇到乙個的bug.mysql分頁時每頁的資料中有重複的資料.我一聽驚呆了,以前怎麼都沒有遇見這種事情.案件重演 用於涉及到業務表,不方便截圖.就用簡單的模擬資料表來進行測試吧 建立學生表 create table ...

mysql 左連線 重複 mysql左連線重複行

我正在設計乙個類似於4個 的字典資料庫 words wordid lemma senses wordid synsetid synsets synsetid definition samples synsetid sample所以我使用下面的查詢來獲取所有意義定義和樣本 if isset searc...

mysql 刪除重複索引 去掉mysql重複的索引

create table t id int not null primary key,a int not null,index id engine innodb 乙個經驗不足的使用者可能是想建立乙個主鍵,然後再加上索引以供查詢使用。事實上主鍵也就是索引了。所以完全沒必要再新增index id 了。可...