MySQL使用UNIQUE實現資料不重複插入

2022-09-25 19:15:11 字數 1689 閱讀 1892

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 varchathctonxsvr(程式設計客棧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 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,當然你可以在inswww.cppcns.comert的時候加入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使用unique實現資料不重複插入

本文位址:

unique函式的使用

unique的作用是 去掉 容器中相鄰元素的重複元素 一般要求陣列有序 它會把重複的元素新增到容器末尾 所以陣列大小並沒有改變 而返回值是去重之後的尾位址。用法 unique 陣列首位址,陣列尾位址 include include include using namespace std int ma...

MYSQL 唯一索引UNIQUE使用方法詳解

建立唯一索引的目的不是為了提高訪問速度,而只是為了避免資料出現重複。唯一索引可以有多個但索引列的值必須唯一,索引列的值允許有空值。如果能確定某個資料列將只包含彼此各不相同的值,在為這個資料列建立索引的時候就應該使用關鍵字unique 把它定義為乙個唯一索引。建立唯一索的方法 操作表 如下 複製 cr...

使用unique來刪除重複元素

c stl庫中的algorithm庫包含了乙個unique函式可以用來刪除容器中重複的元素,其只能刪除相鄰近的重複元素,所以如果要使容器中的所有元素都去重,則需要事先對元素進行排序,但這會破壞原先元素的排列順序,此時應該使用另一種方法解決。unique 原型 template class forwa...